您好,登錄后才能下訂單哦!
Java中怎么實現 希爾排序,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
希爾排序的基本思想是先把數組分成若干個小數組,然后對小數組進行排序,最后再整體排序。
如圖所示
Java具體實現代碼:
輸入:數據元素數組r,數組r 的待排序區間[low..high],步長序列delta
輸出:數組r 以關鍵字有序
代碼:
public void shellSort(Object[] r, int low, int high, int[] delta){for (int k=0;k<delta.length;k++) shellInsert(r, low, high, delta[k]); //一趟步長為delta[k]的直接插入排序}private void shellInsert(Object[] r, int low, int high, int deltaK){for (int i=low+deltaK; i<=high; i++)if (strategy.compare(r[i],r[i-deltaK])<0){ //小于時,需將r[i] 插入有序表Object temp = r[i];int j = i-deltaK;for(; j>=low&&strategy.compare(temp,r[j])<0; j=j-deltaK) r[j+deltaK] = r[j]; //記錄后移r[j+deltaK] = temp; //插入到正確位置} }
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。