希爾排序:也稱遞減增量排序演算法,是插入排序的一種更高效的改進版本。但希爾排序是非穩定排序演算法。
希爾排序是基於插入排序的以下兩點性質而提出改進方法的:
1,插入排序在對幾乎已經排好序的資料操作時,效率高,即可以達到線性排序的效率;
2,但插入排序一般來說是低效的,因為插入排序每次只能將資料移動一位;
希爾排序的基本思想是:先將整個待排序的記錄序列分割成為若干子串行分別進行直接插入排序,待整個序列中的記錄"基本有序"時,再對全體記錄進行依次直接插入排序。
演算法思路:
選擇乙個增量序列 t1,t2,……,tk,其中 ti > tj, tk = 1;
按增量序列個數 k,對序列進行 k 趟排序;
每趟排序,根據對應的增量 ti,將待排序列分割成若干長度為 m 的子串行,分別對各子表進行直接插入排序。僅增量因子為 1 時,整個序列作為乙個表來處理,表長度即為整個序列的長度。
**演示:
c#**實現:
1實現結果:public
void num(int
list)29
for (; num > 0; num = num / 3)10
20 list[numone - 1] =temp;21}
22}23}
24static
void main(string
args)25;
28 program po = new
program();
29po.num(count);
30for (int i = 0; i < count.length; i++)
3134
console.readkey();
35 }
**於:
c 中常見的演算法 氣泡排序
氣泡排序 bubble sort 是一種直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端。演算法思路 1,...
常見排序演算法之希爾排序演算法
1.希爾排序簡介 1.介紹 希爾排序 shell s sort 是插入排序的一種又稱 縮小增量排序 是直接插入排序演算法的一種更高效的改進版本。希爾排序是非穩定排序演算法 2.核心思想 希爾排序是把記錄按下標的一定增量分組,對每組使用直接插入排序演算法排序 當增量減至1時,整個檔案恰被分成一組,演算...
常見的排序演算法(六) 希爾排序
希爾排序,也稱遞減增量排序演算法,是插入排序的一種更高效的改進版本。希爾排序是非穩定排序演算法。希爾排序是基於插入排序的以下兩點性質而提出改進方法的 步長的選擇是希爾排序的重要部分。只要最終步長為1任何步長序列都可以工作。希爾排序 如下 1 public static void shellsort ...