希爾排序執行步驟分析
阿新 • • 發佈:2018-12-23
第一次 j和k跨度5執行步驟private static void swap2(int []arr,int a,int b){ int av = arr[a]; arr[a] = arr[b]; arr[b] = av; } private static void test(int arr[]){ for (int gap = arr.length/2;gap>0;gap = gap/2){ for (int i=gap;i<arr.length;i++){ int j=i; while (j-gap >=0 && arr[j] < arr[j-gap]){ swap2(arr,j,j-gap); j = j-gap; } } } } public static void main(String []args){ int[] arr1 = new int[]{1,4,2,7,9,8,3,6,0,-1}; test(arr1); System.out.println(Arrays.toString(arr1)); }
第二次 j和k跨度2執行步驟
第三次 j和k跨度1執行步驟