讀《演算法導論》我來C語言實現(1) 插入排序

2021-06-11 00:58:15 字數 498 閱讀 2963

最近在重新溫習演算法導論,書裡面的演算法一段時間不看就會忘記,於是我就想重新用c語言碼出來,等以後自己再用複習或要用的時候,直接閱讀**,更加方便。

書上講的第乙個演算法也是個人認為最簡單的乙個——插入排序,作者把插入排序比作打撲克牌時的摸排並排序,很形象,下面是插入排序的**:

#include void insert_sort(int a, unsigned int n)

a[j + 1] = temp; }}

int main()

; int i;

insert_sort(array, sizeof(array) / sizeof(int));

for (i = 0; i < sizeof(array) / sizeof(int); i++)

}

插入排序使用的是增量法,遍歷陣列a的第i項時,陣列a的[0~i-1]項已經是有序的,在陣列的前i-項中找到適合第i項的位置插入進去;i從頭遍歷到結尾,即實現了插入排序。

演算法導論筆記 插入排序C語言實現

2.1插入排序 對於少量元素的排序,插入排序是個有效演算法,工作方式類似於排序一手撲克牌。每次從桌上拿一張牌並將它插入另一手中正確的位置,為找到正確位置,依此對 手中的牌進行比較,直到找出正確位置。該演算法是原址排序。原址排序 在排序演算法中,如果輸入陣列中僅有常數個數元素需在排序過程中存 儲在陣列...

插入排序演算法 C語言實現

基本思想 每一步將乙個待排序的資料插入到前面已經排好序的有序序列中,直到插完所有元素為止。在有序陣列中插入當前元素key的時候,從有序陣列的最後乙個元素開始往前遍歷,如果a i key 則把a i 1 a i 即把比key大的元素以此朝後挪,給key值騰位置,一旦找到有序陣列中比key小的元素,那說...

演算法導論 關於快速排序的實現(c語言實現)

在演算法導論的第七章,介紹了有關快速排序的演算法。該演算法其實是分治演算法的一種。分 將陣列中的元素分成兩部分和乙個pivot 治 遞迴的對兩個子陣列進行排序 合 此時將陣列遍歷輸出即可 書中介紹的演算法的主要思想如下 1 首先將陣列的第乙個元素作為pivot,然後順序的遍歷該陣列,將小於pivot...