幾種常用的排序方法7 希爾排序

2022-08-11 11:36:15 字數 474 閱讀 8008

希爾排序

希爾排序又稱為縮小增量排序,它是直接插入排序的一種改進,它的基本思想是:將整個待排記錄序列分割成若干個子串行,然後分別對子序列進行直接插入排序,待整個序列中的記錄基本有序時,再對全體記錄進行直接插入排序。

上面是資料結構數上話,看起來很繞人,其實很簡單,就是一種插入排序,只是如何選取子數列:跳躍選取,每隔乙個增量k選取乙個數,這些數構成乙個子串行(相當於數學中的同餘)。一般來說每進行一次shell排序,k的值變為一半,直到為1。

1

void shell_sort(int * a, intn)2

17 a[j + k] = temp; //

完成小數與大數的互換

18}

19 k /= 2; //

選取的增量每次取一半,直到為1

20}

21 }

幾種常用的排序方法

幾種常用的排序方法 1.氣泡排序 氣泡排序演算法的運作如下 比如按從小到大排列 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作第一步中的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的...

幾種常用的排序方法

1 氣泡排序,原理 依次比較相鄰的兩個值,如果後面的比前面的小,則將小的元素排到前面。依照這個規則進行多次並且遞減的迭代,直到順序正確。因為是兩個相鄰的數進行比較,剛開始進行第一輪比較時總共進行6次比較,為陣列長度減一。經過第一輪的比較能夠將陣列中最大的那個數找出且放到最後一位,此時進行第二輪比較原...

常用排序演算法 希爾排序

希爾排序 簡單描述 希爾排序是對插入排序的改進,插入排序每次只能移動一位,速度較慢 通過對資料進行分組,可以實現跨越式移動。基本思想 1 首先是步長的選擇,首先是陣列長度的一半,然後再每次減半最後直到步長為1 2 按照步長對資料進行插入排序 時間複雜度 比簡單插入排序 o n 2 要好,是在o nl...