本章內容對希爾德原理及特點並沒有做太多敘述,主要目的是對希爾排序**進行
解希爾排序內容
簡介希爾排序是插入排序的一種,也成縮小增量排序,是直接插入排序演算法的
一種更高效的改進版本;
希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入演算法排序,
每組包含的元素越來越多,當增量減至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的為乙個組。...