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

2021-08-17 07:21:37 字數 709 閱讀 6433

2.1插入排序

對於少量元素的排序,插入排序是個有效演算法,工作方式類似於排序一手撲克牌。

每次從桌上拿一張牌並將它插入另一手中正確的位置,為找到正確位置,依此對

手中的牌進行比較,直到找出正確位置。

該演算法是原址排序

原址排序:在排序演算法中,如果輸入陣列中僅有常數個數元素需在排序過程中存

儲在陣列之外,則稱排序演算法是原址的。例如:插入排序,堆排序,快速排序。

偽**:

insertion-sort(a)

for j to a.length

key = a[j]

//將a[j]插入到排好序的a[1..j-1]

i = j - 1

while i > 0 and a[i] > key

a[i+1] = a[i]

i = i - 1

a[i+1] = key

c語言實現:

#includeint main()

a[i+1] = key; //插入該位置

}for(i = 0;i<10;i++)

return 0;

}

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

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

C語言實現插入排序

插入排序 我在學習一些簡單的演算法,我用文字記錄我的進步。插入排序 其實就是在待排序列中找到,沒有排序好的元素,插入的適當的位置,本文以公升序為例,簡單的講解一下。直接看下面的 include stdio.h include stdlib.h include string.h void swap i...

C語言實現插入排序

插入排序是排序演算法的一種,它不改變原有的序列 陣列 而是建立乙個新的序列,在新序列上進行操作。這裡以從小到大排序為例進行講解。插入排序的基本思想是,將元素逐個新增到已經排序好的陣列中去,同時要求,插入的元素必須在正確的位置,這樣原來排序好的陣列是仍然有序的。在實際使用中,通常是排序整個無序陣列,所...