希爾排序小結

2021-06-17 00:39:49 字數 516 閱讀 6069

當乙個系列有序時,用直接插入排序的時間複雜度為o(n2)。當系列基本有序時,用直接插入排序的效率也較高.由於直接插入排序簡單,且當系列的規模較小時效率比較高,希爾排序正是從這兩點出發對直接插入排序進行改進得到的一種排序方法。

希爾排序的基本思想是:先將整個待排記錄系列分割成若干個子系列分別進行直接插入排序,待整個系列中的記錄"基本有序"時,再對全體記錄進行一次直接插入排序.

注意:希爾排序是

不穩定的排序方法. 時間複雜度 平均時間 o(nlogn) 最差時間o(n^s) 1

希爾排序演算法描述餘下:

// 希爾排序.cpp : 定義控制台應用程式的入口點。

#include "stdafx.h"

#include using namespace std;

//增量為dc的一趟希爾排序

void shellinsert(int *a,int len,int dc)

{ for(int i=dc;i=0 && temp

希爾排序小結

希爾排序 希爾排序就是將給定陣列分成多個部分,進行插入排序。每次分組步長gap為n 2,即是每隔gap的數都是一組的。簡單的說如果乙個陣列長度為10,gap為2時,那麼0,2,4,6,8,為一組,1,3,5,7,9為一組。然後分別對這兩組進行插入排序。gap一般定為n 2,以此迴圈下去,n 2 2,...

排序 希爾排序

希爾排序 shell sort 又稱為縮小增量排序,輸入插入排序演算法,是對直接排序演算法的一種改進。本文介紹希爾排序演算法。對於插入排序演算法來說,如果原來的資料就是有序的,那麼資料就不需要移動,而插入排序演算法的效率主要消耗在資料的移動中。因此可知 如果資料的本身就是有序的或者本身基本有序,那麼...

排序 希爾排序

縮小增量排序 待排序列按關鍵字基本有序時,直接插入排序的效率很高 希爾排序思想 將整個待排記錄分割為若干子串行分別進行直接插入排序,待整個序列中的記錄基本有序時,再對全體記錄進行一次直接插入排序,就可以完成整個排序工作 增量序列中的值沒有除1以外的公因子,且最後乙個增量必須等於1 子串行的構成不是逐...