JAVA排序演算法之希爾排序

2021-08-14 06:15:34 字數 825 閱讀 1197

本章內容對希爾德原理及特點並沒有做太多敘述,主要目的是對希爾排序**進行

解希爾排序內容

簡介
希爾排序是插入排序的一種,也成縮小增量排序,是直接插入排序演算法的

一種更高效的改進版本;

希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入演算法排序,

每組包含的元素越來越多,當增量減至1.整個陣列恰被分成一組,

演算法便終止

排序過程

縮小增量

希爾排序屬於插入類排序,是將整個有序序列分位

若干個小的子串行分別進行插入排序;

排序過程:先取乙個正整數d1=1,即所有記錄放進乙個組中排序為止;

**實現
public

static

void

main(string args) ; //排序前陣列

int d = a.length; //用d接收陣列長度

while (true)

a[k + d] = temp; //for迴圈時,k=k-d,執行完畢後,判斷條件不成立,迴圈結束,但未執行迴圈體,所以這裡要k+d而不是k}}

if(d == 1)

}system.out.println("排序後:"); //列印已知陣列

for(int i = 0; i < a.length;i++)

}

小結
**中德變數 i,j,k還是比較繞的,需要耐心理解,本章主要幫助讀者理解**內容

,至於原理,很多網頁均有詳細說明.

Java排序演算法之希爾排序

希爾排序 shell sort 又稱為 縮小增量排序 是1959年由d.l.shell提出來的。它也是一種屬於插入排序類的排序方法,是一種對直接插入排序的改進,但在時間效率上卻有較大的改進。希爾排序的基本思想是 先將整個待排元素序列分割成若干個子串行 由相隔某個 增量 的元素組成的 分別進行直接插入...

排序演算法之希爾排序 java

希爾排序是基於插入排序而改進的排序方法。它將資料分為多組,再對各組使用插入排序。分組依據是增量d,一般增量是 排序元素的長度 2,呼叫一次插入排序,再繼續除2,再呼叫一次插入排序,再d 2.直到d 1 希爾排序的時間複雜度為 o n平方 思路 如有下列10個帶排序元素 增增量d 10 2 5,即每隔...

排序演算法之希爾排序 java實現

希爾排序 在直接插入排序的基礎上進行的優化,直接插入排序在n值小的時候效率比較高,在n很大的時候如果待排序序列基本有序,效率依然很高,時間效率可以提公升為o n 希爾排序也稱之為縮小增量排序。1.先選取乙個小於n的整數d 步長 然後按照步長d將待排序序列分為d組,從第乙個記錄開始間隔為d的為乙個組。...