插入排序總結

2021-06-19 17:37:05 字數 1121 閱讀 1732

典型的比較排序演算法:插入排序、堆排序、快速排序。

根據演算法導論中出現的先後順序,首先出場的是插入排序

.原版插入排序偽**:

1.    for j=2 to a.length   

為陣列a的長度

2.for i= j-1 downto 1

3.if a[i]>a[i+1]

4.        exchange a[i] with a[i+1]  //比較,若不符合遞增,則交換

5.i=i-1

6.else break

#includeusing namespace std;

void insertsort1(int * ival,int length);

void insertsort2(int * ival,int length);

int main()

; int alength=5;

for(int i=0;i!=5;++i)

else

} }}

void insertsort2(int *ival,int length)

else

}ival[i+1]=key;

}}

演算法改進1: c++中實現兩個陣列元素的交換需要三條**:temp=a[i];a[i]=a[i+1];a[i+1]=temp;通過下列演算法交換**只需一條指令實現。上述程式當中函式insertsort2是一條指令實現交換。

insertion-sort(a)

1.      for j=2 to a.length   為陣列a的長度

2. key=a[j]

3. for i= j-1 downto 1

4. if a[i]>key

5.         a[i+1]=a[i]

6. i=i-1

7. else break

8.                 a[i+1]=key

演算法分析:插入排序法的最壞情況時間為θ(n^2)插入排序適合原來順序就已經很好的序列。如演算法導論7.2-4習題所描述的銀行支票兌付問題。

總結 插入排序

一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 1 從第乙個元素開始,該元素可以認為已經被排序 2 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 3 如果該元素 已排序 大於新元素,將該元素移到下一位置 4 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 5...

插入排序總結

所謂插入排序,就是把一組亂序的資料,依次拿出乙個,放入到一組已經排好序的資料中的正確的位置。又可以分為 直接插入排序 折半插入排序 二路插入排序 表插入排序 希爾排序 一 直接插入排序 相對比較簡單的一種排序方法,就是按照概念一步一步的操作,可以使用乙個for迴圈實現,具體 如下 直接插入排序 vo...

排序總結 插入排序

created by liyuanshuo on 2017 3 17.include insertion sort.h a unsort array n total numbers of element in array 1.從第乙個元素開始,該元素可以認為是已經被排序 2.取出下乙個元素,在已經排...