#include <stdio.h>
#include <stdlib.h>
void output(int *a,int len);
void InsertSort(int *array, int len);
int main()
{
int a[6]={1,5,2,9,4,3};
InsertSort(a,6);
output(a,6);
printf("\n");
system("pause");
return 0;
}
void InsertSort(int *array, int len)
{
int i;
for(i=1;i<len;i++)
{
int cur=i; //当前位置
int last=cur-1; //上一个位置
int temp = array[cur];
while(array[last] > temp && last>=0) //当前大小小于上一个
{
array[last+1]=array[last]; //上一个后移
last--;
} //当前小于等于上一个
array[++last]=temp; // 插入当上一个后面
}
}
void output(int *a,int len)
{
int i;
for(i=0;i<len;i++)
{
printf("%d ",a[i]);
}
}
来源:https://www.cnblogs.com/fengbaobao/p/insertsort.html