插入排序是最简单的排序方法,他的基本操作是将一个记录插入到已排序好的前子序列中。有n个数的数列,总共要进行n-1次插入排序。
例如原数列为[5,1,3,2,4]总共进行4次排序分别为:[1,5,3,2,4],[1,3,5,2,4].[1,2,3,5,4],[1,2,3,4,5].
复杂度为O(n^2),排序为稳定的排序。
基本代码实现如下:
#include <iostream>
using namespace std;
void print(int *a,int n){
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
int main()
{
int a[100];
int n;
int tem;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
/* 直接插入排序 */
for(int i=1;i<=n-1;i++){
int j=i-1;
int val = a[i];
while(a[j]>val && j>=0){
a[j+1] = a[j];
j--;
}
a[j+1] = val;
}
print(a,n);
return 0;
}
/*
5
5 1 3 2 4
*/