希爾排序 Java實現

2021-08-31 21:15:31 字數 433 閱讀 1810

希爾排序是對插入排序的優化,減少了元素移動位置的次數,又叫做縮小增量排序

先將待排序的陣列元素按照增量分成多個子串行,對每個子串行進行插入排序,直到子串行相對有序;然後縮小增量,重複第一步的操作;直到增量為1的時候,再最終進行一次插入排序,使得元素有序。

//希爾排序

public static void shellsort(int arr)else

}//將當前數放到空出來的位置

arr[j+inc]=temp;}}

system.out.println(arrays.tostring(arr));

}//測試**

public static void main(string args);

shellsort(arr);

}

學習中,有不正確的地方多多指教

希爾排序 java實現

先將整個待排序的記錄序列分割成為若干子串行分別進行直接插入排序,待整個序列中的記錄 基本有序 時,再對全體記錄進行依次直接插入排序。操作方法 選擇乙個增量序列t1,t2,tk,其中ti tj,tk 1 按增量序列個數k,對序列進行k 趟排序 每趟排序,根據對應的增量ti,將待排序列分割成若干長度為m...

希爾排序 Java實現

希爾排序實際上是針對插入排序的一種優化演算法。當被插入的元素要移動到陣列的開始位置時需要比較的次數相當大,通過改變相鄰的元素比較為距離間隔為h的元素比較 h逐漸減小為1 就能減少比較的次數。如下 public class tester shellsort t for int a t 將陣列中下標為i...

希爾排序之Java實現

希爾排序思想 希爾排序其實就是將乙個陣列分段進行插入排序,最後再將分段序列組合在一起進行大的插入排序。也即 希爾排序是首先將陣列分成若干子陣列 一般子陣列的個數是n 2或者n m,n是陣列長度,m是分隔間距 然後每個子陣列進行插入排序 再縮減增量 一般縮減增量表示式是 k 2,k是上一次執行插入排序...