day07-数组算法

1、使用冒泡排序,实现如下的数组从小到大排序。

int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};

int temp;
for(int i = 0; i < arr.length - 1){//比较几轮
    for(int j = 0; j < arr.length - 1 - i){//每次比较完毕 都减少一位
        temp = arr[j];
        if(temp > arr[j + 1]){//把较大的数换到右边 从小到大排序
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}

2、 如何反转上面的数组。请代码实现

int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
int temp;
for(int i = 0; i < arr.length / 2; i++){
    temp = arr[i];
    arr[i] = arr[arr.length - 1 - i]
    arr[arr.length - 1 - i] = temp;
}

3、复制上述数组,得到一个新的数组

int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
int[] arr1 = new int[arr.length];
for(int i = 0; i < arr.length; i++){
    arr1[i] = arr[i];
}

4、使用线性查找,从上述数组中查找22是否存在。存在,返回所在位置的索引。不存在,输出提示信息。

int[] arr = new int[]{34,5,22,-98,6,-76,0,-3};
int number = 22;
boolean flag = false;
for(int i = 0; i < arr.length; i++){
    if(number == arr[i]){
        System.out.println("所在位置的索引: " + i);
        flag = true;
        break;
    }
}
if(flag == false){
    System.out.println("很遗憾,不存在");
}


6、数组中常见的异常有哪些?请举例说明

//数组越界异常 ArrayIndexOutOfBoundsException
//合理范围 [0, arr.lenght-1]
int[] arr1 = new int[2];
int number1 = arr1[2];

//空指针异常 NullPointerException
int[] arr2 = null;
int number2 = arr2[0];

int[][] arr3 = new int[2][];
int number3 = arr3[0][0];

posted @ 2022-11-25 23:50  huxingxin  阅读(14)  评论(0编辑  收藏  举报