算法思想:将序列的第一个元素作为一个有序序列,然后将剩下的n-1个元素按照关键字大小依次插入该有序序列,每插入一个元素后依然保持该序列有序,经过n-1次排序后就成为有序序列。
#include<iostream>
using namespace std;
void insert(int *a,int n)
{
for(int i=1;i<n;i++)//n-1趟
{
int j=i;
int temp=a[i]; //待插入元素存入临时变量
while(j>0 && temp<a[j-1])
{
a[j]=a[j-1];
j--;
}
a[j]=temp;//待插入元素存入找到的插入位置
}
}
int main()
{
int a[100];
int i,j,n;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
insert(a,n);
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}