冒泡排序,选择排序、二分法查找图示以及代码实现

冒泡排序

请看下面的这个栗子:

需要排序的数组arr = {99,88,77,55,66,44};

具体排序细节各位客官请看图:

代码实现:

public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = {99,88,77,55,66,44};
        bubbleSort(arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void bubbleSort(int[] arr){
        for (int i=0;i<arr.length;i++){
            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;
                }
            }
        }
    }
}

选择排序

请看下面第二个栗子:

需要排序的数组arr = {99,88,77,55,66,44};

public class selectSort {
    public static void main(String[] args) {
        int[] arr = {99, 88, 77, 55, 66, 44};
        selectSort(arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void selectSort(int[] arr) {
        int index;
        for (int i = 0; i < arr.length; i++) {
            index = i;
            for(int j=i;j<arr.length;j++){
                if(arr[index]>arr[j]){
                    int temp = arr[index];
                    arr[index] = arr[j];
                    arr[j] =  temp;
                }
            }
        }
    }
}

二分法查找

二分法查找的前提是数组必须是按照升序排列的。比如下面这个栗子 

 arr = {44,55,66,77,88,99};

请看代码实现

public class BinarySearch {
    public static void main(String[] args) {
        int[] arr = {44, 55, 66, 77, 88, 99};
        int i = binarySearch(arr, 55);
        System.out.println(i);
    }

    public static int binarySearch(int[] arr, int ele) {
        int minIndex = 0;
        int maxIndex = arr.length - 1;
        int midIndex = (minIndex + maxIndex) / 2;

        while (minIndex <= maxIndex) {
            if (ele == arr[midIndex]) {
                return midIndex;
            } else if (ele > arr[midIndex]) {
                minIndex = midIndex + 1;
            } else if (ele < arr[midIndex]) {
                maxIndex = midIndex - 1;
            }
           midIndex = (minIndex + maxIndex) / 2;
        }
        return -1;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_37291761/article/details/83308595