Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 945 Bytes

File metadata and controls

39 lines (29 loc) · 945 Bytes

实现逻辑

不断选择剩余元素中的最小者,外循环用于交换元素并记录最小元素的索引(总次数N)
内循环比较当前元素与目前已知最小元素(决定是否替换最小元素的索引)

时间复杂度分析

交换次数N,比较次数N^2/2

特点

移动数据最少

代码实现

Java

    class InsertSort {
    
        static void sort(int[] arr){
            for (int i = 0; i < arr.length; i++) {
                int min = i;
                for (int j = i + 1; j < arr.length; j++) {
                    if (arr[j] < arr[min]){
                        min = j;
                    }
                }
                exchange(arr, i, min);
            }
        }
    
        static void exchange(int[] arr, int i, int j){
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }