希爾排序 ShellSort

2021-07-25 13:46:01 字數 539 閱讀 6358

package sort.com;

public class shellsortfirst ;

// 計算出h的最大值

int h=1;

while(h<=a.length/3)

//在h的不斷變化過程中將原序列分為多個子串行,並對這些子串行分別進行直接插入排序,當h=1時,對所有資料進行最後一次直接插入排序

while(h>0)

//插入操作,也是真正的賦值操作

a[j+h] = temp;}}

//輸出不同h值對應的不同序列

system.out.println("當h=" + h + "時,序列為" );

for(int x : a)

system.out.println("\n");

//通過該公式讓h不斷變化,該公式是固定的

h = (h-1)/3;

}//遍歷完成排序的輸出並輸出

system.out.println("最後結果:");

for(int s : a)

}

希爾排序(Shell Sort)

希爾排序 shell sort 又叫做縮小增量排序 diminishing increment sort 是一種很優秀的排序法,演算法本身不難理解,也很容易實現,而且它的速度很快。基本思想 先取乙個小於n的整數d1作為第乙個增量,把檔案的全部記錄分成d1個組。所有距離為dl的倍數的記錄放在同乙個組中...

希爾排序 shellsort

希爾排序 shellsort 又叫增量遞減 diminishing increment 排序,是由d.l.shell發明的,這個演算法是通過乙個逐漸減小的增量使乙個陣列逐漸趨近於有序從而達到排序的目的。假設有乙個陣列int data 16 首先將這個增量設為16 2 8,這樣就將這個陣列分成了8個子...

希爾排序(ShellSort)

希爾排序 shellsort cpp view plain copy include shellsort.h include print.h 希爾排序,分組進行插入排序,最後一步仍然是插入排序,但是因為之前的操作使逆序數減少,所以相對單純的插入排序效率高。void shellsort inta,in...