插入排序:
每個數都會與前面的數進行比較,插入到自己應該在的位置,然後排在它後面的數,依次往後移動一位。
代碼:
#include<iostream>
#defineMAXN 10000
usingnamespace std;
int main()
{
int A[MAXN];
int i=0,j=0;
int temp;
int num;
cin >> num;
for(i=0 ; i<num ; i++){
cin >> A[i];
}
for(j=1 ; j<num ; j++){
temp = A[j];
i = j-1;
while(i>=0&&A[i]>temp){
A[i+1] = A[i];
i = i - 1;
A[i+1] = temp;
}
}
for(i=0 ; i<num ; i++){
cout << A[i] << "";
}
cout << endl;
return 0;
}
<------- over ------->
for j = 2 to A.length //這行代碼的times是n,(n-1+1),最後還要判斷一次所以要加一,相類似的代碼都是這個原理
key = A[i]; //這個的times就是n-1;
時間複雜度:插入排序對隨即順序的序列的時間複雜度也爲O(N^2),但是對於基本有序的序列進行排序時間複雜度爲O(N)