8大排序之 (2)希爾排序

2021-07-16 13:51:10 字數 1082 閱讀 6553

希爾排序

希爾排序:     其實就是加強版的插入排序。首先把待排序的資料根據增量分成幾個子串行,對子序列進行插入排序,                         直到增量為1,直接進行插入排序;

增量 的選擇:一般為陣列長度的二分之一,再變為原來增量的二分之一....直到增量為1

比如資料:int a = 這時候增量為a.length /2 = 4;所以根據4,把資料分為幾個子串行(4,5)(3,7),(8,1)(2,0),然後對子序列進行插入排序

(1)過程如下:

對每乙個子串行進行插入排序:

(2)gap = gap/2 = 4/2 =2  這時候子串行為:(4,1,5,8),(3,0,7,2)

(3)gap = gap/2=2/1=1  這時候再進行一次插入排序,就是最後的結果:

(二)**如下:

public class xier ;

shellsort(a);

system.out.print("結果為"+ a[0]+","+a[1]+","+a[2]+","+a[3]+","+a[4]+","+a[5]+","+a[6]+","+a[7]+","+a[8]+","+a[9]); }

public static void shellsort(int list)

list[j + gap] = temp;

}system.out.format("gap = %d:\t", gap);

gap = gap / 2; // 減小增量}}}

七大排序之希爾排序

希爾排序的實質就是分組插入排序,該方法又稱 縮小增量排序 因dl shell於1959年提出而得名。該方法的基本思想是 先將整個待排元素序列分割成若干個子串行 由相隔某個 增量 的元素 組成的 分別進行直接插入排序,然後依次縮減增量再進行排序,待整個序列中的元素基本有序 增量足夠小 時,再對全體元素...

八大排序之希爾排序

package com.eight.paixu 希爾排序法 希爾排序 shellsorting 又稱為 縮小增量排序 該方法的基本思想是 先將整個待排元素序列分割成若干個子串行 由相隔某個 增量 的元素組成的 分別進行直接插入排序,待整個序列中的元素基本有序 增量足夠小 時,再對全體元素進行一次直接...

八大排序之希爾排序

學希爾排序之前,必須要有插入排序演算法的基礎 插入排序演算法 八大排序之插入排序 可以這麼說,希爾排序就是對插入排序的優化 為什麼這麼說呢?場景 2,3,4,5,6 1 現在輪到把 1 插入到正確的位置上,很明顯肯定是插在第一位,即 1 2 3 4 5 6,但是可以看出要比較5次,雖然5次並不多,但...