插入排序是一种很简单朴实的排序方法。
首先,我们知道,单独一个数肯定是一个有序的,因为只有它一个数字。
然后我们从第二个数字开始,把第二个数字加进第一个有序列里,使其两个数字有序【1,2】
接着我们把第三个数字也加进去...
...
最后一个数字也加进去,有序列就包含了全部的数字了,此时排序也完成了。
#include <cstdio>
#include <iostream>
using namespace std;
int a[10005];
int n;
void insertsort(int x,int y)
{
for(int i = 2; i <= n; i++) //数组是从1开始的,所以最开始把a[1]当成一个有序列,待排序从a[2]开始。
{
int tmp = a[i];
int j = i-1;
while(j > 0 && tmp < a[j])
{
a[j+1] = a[j]; //向后移动
j--;
}
a[j+1] = tmp;
}
}
int main()
{
cin>>n;
for(int i = 1; i <= n; i++)
cin>>a[i];
insertsort(1,n);
for(int i = 1; i <= n; i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}