排序演算法的總結 插入排序與shell排序

2021-09-25 10:46:14 字數 924 閱讀 6854

在我們的日常生活中,很多地方都會直接或者間接的使用排序這種操作,比如中午去學校食堂買飯的時候需要排隊,將同學的的資料按學號排列等等,排序與我們的生活息息相關。

在計算機語言中,很多時候我們對一些資料進行處理的時候,也會用到排序,特別是處理大資料的時候,經常會用到一些排序的演算法,下面就來介紹一些常用的演算法吧。

這裡我們預設所有排序都是公升序排序。

**插入排序的思想是將一組資料的每乙個元素,從後往前找比自己大的元素,並將這些元素移到自己的後面,直至找到第乙個小於自己的元素,找到後將自己插入到該元素的後面,以此類推,直至遍歷完所有元素。****如下:

void insertsort(int *arr, int len)

else

} arr[j + 1] = tmp;

}}

從插入排序演算法的思想來看,當一組資料越來越趨向有序時,插入排序的速度也就越來越快,簡單來說就是越有序速度越快

shell排序是在插入排序的基礎上得出的,與插入排序不同的是shell排序是將一組資料等距劃分成了若干組,具體劃分方法如下圖,同時每一次都減少分組數量,直至分組數為1,使得資料越來越有序的過程

**如下:

//一次shell排序

void shell(int *arr, int len,int gap)

else

}arr[j + gap] = tmp; }}

//shell排序

void shellsort(int *arr, int len)

; for (int i = 0; i

}

排序演算法總結 插入排序

插入排序,顧名思義就是將乙個元素插入到適當的位置。其演算法核心是 1.將第乙個元素看做是個單獨的序列。顯然,只有乙個元素的序列肯定是有序序列。2.然後將和第二個元素做比較。如果第二個元素小,那麼就將第二個元素插入到第乙個元素前面,這樣我們就得到了乙個擁有兩個元素的有序序列。3.依次掃瞄剩餘元素,每掃...

排序演算法總結 1 插入排序

主要分為插入排序 交換排序 選擇排序 歸併排序 計數 也有叫分配 排序。一 插入排序。插入排序,就是每次將乙個待排序的物件,插入到乙個有序的資料序列中,得到乙個新容量加1的資料有序序列。如此往復。可分為直接插入排序 二分法插入排序 希爾排序。不同插入方法的區別就是尋找插入位置的方法不同。1 直接插入...

排序演算法總結(三)插入排序

插入排序的原理是從陣列的某個位置開始依次和前面的位置數相比,找到插入位置,將數插入到該位置,這樣多次插入後,得到的將是乙個有序陣列。include using namespace std void insertsort int arrays,int len int main void inserts...