一、插入排序
定義:在乙個有序的資料序列中,新插入乙個資料,使得插入後的資料序列依舊保持有序,插入排序就是其中一種演算法,插入排序的基本操作就是將乙個新的資料插入到已經完成排序的有序資料中,從而得到乙個新的有序資料。
偽**:
insertion-sort(a)
1. for i = 2 to a.length
2. key = a [i-1];
3. k=i-1
;4. while k>0
anda[k]>key
5. a[k+1]=a[k];
6. k--;
7. a[k+1]=key;
演算法過程:
void insertsort(int a,int
length)
a[k+1]=key;
}}
時間複雜度:o(n*n)
穩定性:插入排序是一種穩定的演算法。
關於插入排序的學習筆記
關於陣列的插入排序,我們需要先對for迴圈有乙個更加透徹的認識,我們需要很清楚的知道for迴圈結束的時候,i的取值是多少。如下面圖例 如圖中,在第乙個迴圈結束的時候,迴圈經過了5次,第五次結束的時候,i的值也經過了5次 i 變成了5 不再滿足i 5 的條件,結束迴圈,第二個迴圈也是如此。下面進入正題...
關於插入排序
下午開始看演算法導論 涉及一比較簡單的插入排序 輸入 n個數 輸出 輸入序列的乙個排序 重新排序 a 1 a 2 a n 書上的演算法如下 1 for j 2 to length a 2 do key a j 3 i j 1 4 while i 0 and a i key 5 do a i 1 a ...
插入排序筆記
插入式排序屬於內部排序法,是對於欲排序的元素以插入的方式找尋該元素的適當位置,以達到排序的目的。插入排序 insertion sorting 的基本思想是 把 把 n 個待排序的元素看成為乙個有序表和乙個無序表,開始時 有 序表中只包含乙個元素,無序表中包含有n 1 個元素,排序過程中每次從無序表中...