Java中数组的补充方法(增强版遍历、逆序、冒泡排序、二分法查找)

数组的补充方法

在《数组》文章中简单的介绍了数组的基本格式和实现案例,此处不做说明,此文主要是补充一些数组的使用方法。例如:增强版的遍历、逆序、冒泡排序、二分法查找。


增强版遍历:

1.与普通遍历的区别:
普通的遍历给人的直观感觉不是很好,输出的元素都是排列不好看,所以需要增强版的遍历
2.源代码:

public static void printArray(int[] arr){
    //输出一半中括号
    System.out.print("[");
    for(int i = 0;i < arr.length;i++){
        if(i == arr.length - 1){
            System.out.print(arr[i]+"]");
        }else{
            System.out.print(arr[i]+",");
        }
    }
}

3.缺点:
不适用于遍历二维以上的数字。


数组的逆序:

1.逆序的描述:
逆序是指位置信息的大小与数据大小的排序相反。
2.源代码:

    public static void ReverseOrder(int[] arr){
        int temp ;
        for(int min = 0,max = arr.length-1; min < max ;min++,max--){
            temp = arr[min];
            arr[min] = arr[max];
            arr[max]=temp;
        }
    }

3.练习数组的逆序方法的作用:
逆序练习中运用到了指针的思想,练习它能够初步了解数组中指针的使用。


冒泡排序:

1.冒泡排序与普通排序的区别:
普通排序是将第一个数与它后面的所有的数相比较,然后确定它的位置,之后是拿第二个数与后面的数进行比较,然后确定第二个数的位置,依次类推。这种排序的方法,需要将一个数与除它之外所有的数进行比较,所以时间要消耗的多,很多情况下不适用。
冒泡排序,是采用比较相邻的数的方法,没一个轮回的比较都会产生一个最值,然后,这个最值就不需要在进行比较排序了,这种方法会减少比较的次数,节约时间。
2.源代码:

public static void bubbleSort(int[] arr){
    for(int i = 0;i < arr.length-1;i++){
        //每次内循环的比较,从0索引开始,每次都在递减
        for(int j = 0 ;j < arr.length-i-1;j++){
            //相邻的数组元素比较
            if(arr[j] > arr[j+1]){
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}
二分法查找:

1.查找索引是一件十分常用的事情,如果是遍历所有的文件然后再查找出对应的索引是很耗时间的,所以才会需要二分法查找索引。
2.源代码:

public static int binarySearch1(int[] arr,int number){
    int minIndex = 0 ;
    int maxIndex = arr.length -1 ;
    int midIndex = 0;
    while( minIndex <= maxIndex){
        midIndex =(minIndex + maxIndex)/2;
        if(number > arr[midIndex]){
            minIndex = midIndex + 1;
        }else if(number < arr[midIndex]){
            maxIndex = midIndex - 1;
        }else{
            //找到元素
            return midIndex;
        }
    }       
    return -1;
}

3.二分法使用的注意:必须是有序数组


下图中有数组方法的内存图,以及一些Eclipse基本操作和快捷键:

  • 第八天的学习思维导图:

猜你喜欢

转载自blog.csdn.net/jiangyi_1612101_03/article/details/81368676