插入排序原理:第一步把第一个元素看做一个已经排序好的集合,后面的步骤就是在这个集合的适合位置不断补充元素的过程,我们以非递减方式来排序a[n]的元素,假设前面的
i-1个元素已经排序好,待排序元素为a[i], 而a[i]<a[i-1],那么就需要给a[i]在前面i-1个元素中找到一个适合他的位置;
void InsertSort(int a[],int n)
{
int nFlag;
for(int i=1;i<n;i++)
{
if(a[i]<a[i-1])
{
nFlag = a[i];
a[i]= a[i-1];
for(int j=i;nFlag<a[j]&&j>=0;--j) //j>=0是为了防止访问超出下边界
{
a[j]=a[j-1];
}
a[j+1] = nFlag;
}
}
}