#include <stdio.h>
#include <stdlib.h>
/*
当插入第i(i >= 1)个数据元素时,前面的V[0],V[1],...,V[i-1]已经排好序,
这时,用V[i]的关键字与V[i-1],V[i-2]...的关键字进行比较,找到插入位置,
即将V[i]插入,原来位置上的对象向后移动。
*/
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void InsertionSort(int array[],int len)
{
int i = 0;
int j = 0;
int temp = -1;
int index = -1;
for(i=1;i<len;i++)
{
temp = array[i];
index = i;
for(j=i-1;j>=0;j--)
{
if(array[j] > temp) //遇到比temp大的往后移,并记下下标
{
array[j+1] = array[j];
index = j;
}
}
array[index] = temp;
}
}
void println(int array[],int len)
{
int i = 0;
for(i=0;i<len;i++)
{
printf("%d\n",array[i]);
}
}
int main(int argc, char *argv[])
{
int array[] = {21, 25, 49, 25, 16, 8};
int len = sizeof(array)/sizeof(array[0]);
println(array,len);
InsertionSort(array,len);
printf("-------------------\n");
println(array,len);
return 0;
}