增量法 插入排序演算法

2021-07-04 23:32:29 字數 515 閱讀 7820

閒暇時間,在看《演算法導論》,在此做一點微薄的記錄。

插入排序:偽**

insertion-sort(a)

for j=2 to a.length

key=a[ j ]

//insert a[ j ] into the sorted sequence 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

初始化:迴圈的第一次迭代之前,它為真。

保持:如果迴圈的某次迭代之前它為真,那麼下次迭代之前,它仍為真。

終止時為真。

然後,分析演算法的效率。

在最好情況下,它是n的線性函式

在最壞和平均情況下,它是n的二次函式。n為輸入規模。

該排序設計方式為增量法,即在排序子陣列a[1..j-1]後,將單個元素a[ j ]插入子陣列的適當位置,產生排序好的陣列a[ 1...j ]

排序演算法 一 插入排序法 折半插入排序法

約定 假設資料中有n個資料元素 關鍵字 排列演算法中,將序列中各關鍵字值依次存放於型別為keytype的陣列元素k 1 k 2 k 3 k n 中。排序結果按照資料元素 關鍵字 值的大小,從小到大排序。核心思想 第 i 趟排序將序列中第 i 1 個元素 ki 1 i 1,2,n 1 插入到乙個已經按...

插入排序 C語言 希爾排序 縮小增量法

希爾排序是希爾 donald shell 於1959年提出的一種排序演算法。希爾排序也是一種 插入排序 它是簡單插入排序經過改進之後的乙個更高效的版本,也稱為 縮小增量排序 適合於資料量中等大小的排序 成千上萬的資料量 同時該演算法是衝破o n 2 的第一批演算法之一。基本思想 分割成若干個較小的子...

排序演算法之插入排序法

無論是c語言相關書籍還是演算法等等,很多種書籍上都有介紹排序演算法,而排序演算法重要的在於它的思想,這也是乙個程式的靈魂,相信大家也早都知道。在此,我簡單介紹一下插入排序法的基本思想,以供一些初學者及掌握不深的學習人員作乙個參考。其中,插入排序法的核心思想是 通過while的迴圈判斷語句,從第二個數...