排序演算法之希爾排序及Java實現

2021-08-19 07:22:30 字數 959 閱讀 4441

選擇排序(直接選擇排序,堆排序)

交換排序(氣泡排序,快速排序)

插入排序(直接插入排序,希爾排序)

歸併排序

桶式排序

基數排序

希爾排序也是一種插入排序,它是簡單插入排序經過改進之後的乙個更高效的版本,也稱為縮小增量排序。它的主要思想是將整個序列分成多個子串行,之後依次對每個子串行進行直接插入排序,經過多次不同的子串行分割並排序後,整個陣列基本有序,之後對陣列中的所有元素進行一次直接插入排序。對於倒序的陣列,如果採用直接插入排序的話,需要多次移動和插入操作,而採用希爾排序會大大減少移動的次數,加快了處理速度。

希爾排序的步長可以自己定義,也可以採用每次折半的方法,比如一共有12個資料,第一次步長為6進行第一輪排序,第二次步長為3進行第二輪排序,第三次步長為1進行最後一輪排序。每一次的排序都是直接排序演算法。

public

class

shellsort

system.out.println();}}

public

static

void

main(string args);

shesort(test);

system.out.println("測試結果");

for(int i=0; i" ");}}

}

測試結果

incremt:68

36923

5121034

8137

39incremt:38

35910

6122334

8137

39incremt:13

5689

1012

2334

3739

81 測試結果35

68910

1223

3437

3981

Java排序演算法之希爾排序

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

JAVA排序演算法之希爾排序

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

排序演算法之希爾排序 java

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