希爾排序

        int[] arr = {1, 52, 12, 36, 45,6,4,32,12,15,34,76};

// 希爾排序
shellSort(arr);

// 希爾排序
private static void shellSort(int[] arr) {
if(arr==null||arr.length<=1){
return;
}
int len = arr.length;
int tem ;
int gap = len/2; //增量,或者一個分組的數量
while (gap>0){
for (int i = gap; i < len; i++) {
int preIndex = i-gap;
tem = arr[i];
// 加一個插入排序
while (preIndex>=0&& arr[preIndex]>tem){
arr[preIndex+gap] = arr[preIndex];
preIndex = preIndex-gap;
}
arr[preIndex+gap] = tem;
}
gap=gap/2;
}
System.out.println(Arrays.toString(arr));
}
 
 
 
 
posted on 2021-07-13 15:04  沐雨清晨  閱讀(0)  評論(0)  編輯  收藏  舉報
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息