冒泡排序、选择排序、插入排序、希尔排序代码实现

冒泡排序、选择排序、插入排序、希尔排序

冒泡排序:

排序思想:冒泡排序是两个相邻的数进行比较后然后交换。排序次数是数组的长度-1;
时间复杂度o²

代码实现

public static void bubbleSort(int arr[]){
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = 0; j < arr.length-1-i; j++) {
                if (arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }

选择排序:

排序思想:在每一轮的比较中,找出最大或最小的数然后交换,按从大到小或者是从小到大的书序进行排序。排序次数是数组长度-1;
时间复杂度o²

代码实现

public static void selectSort(int arr[]){

        for (int i = 0; i < arr.length - 1; i++) {
            int minIndex = i; //定义最小索引是0
            int min = arr[i]; //假设最小值arr[0]

            for (int j = i + 1; j < arr.length; j++) {
                if (min > arr[j]) {
                    min = arr[j]; //重置min
                    minIndex = j; //重置minIndex
                }
            }
            arr[minIndex] = arr[i];
            arr[i] = min;
        }
        System.out.println(Arrays.toString(arr));
    }

插入排序:

排序思想:把数组看成有序表和无序表,拿无序表的值跟前面的有序表相比,按从小到大或者是从大到小的顺序进行排序。

代码实现

public static void insertSort(int arr[]){
        
        for (int i = 0; i < arr.length - 1; i++) {
            int insertValue=arr[i]; //待插入的值 1
            int insertIndex=i-1;  //带插入的索引

            while (insertIndex >= 0 && insertValue < arr[insertIndex]){
                arr[insertIndex+1]=arr[insertIndex];
                insertIndex--;
            }

            arr[insertIndex+1]=insertValue;
        }
        System.out.println(Arrays.toString(arr));

    }

希尔排序:

代码实现

public static void shellSort(int arr[]){
        for (int gap = arr.length/2; gap >0 ; gap/=2) {
            for (int i = gap; i < arr.length; i++) {
                for (int j = i-gap; j >=0 ; j-=gap) {
                    if (arr[j]>arr[j+gap]){
                        int t=arr[j];
                        arr[j]=arr[j+gap];
                        arr[j+gap]=t;
                    }
                }
            }
        }
        System.out.println(Arrays.toString(arr));

    }

你可能感兴趣的:(冒泡排序、选择排序、插入排序、希尔排序代码实现)