//直接插入排序


#include <stdio.h>



void InsertSort(int items[], int n)

{

int cur_no = 0;

int last_no = 0;

int i = 0;

int cur_value = 0;


/*当插入第n个数时,依次与前面的n-1个数进行两两比较,若比前面的值小,则交换位置*/

for (cur_no = 1; cur_no < n; cur_no++)

{

cur_value = items[cur_no];


for (last_no = cur_no - 1; last_no >= 0 && cur_value < items[last_no]; last_no--)

{

printf("cur_id:%d, last_id:%d\n",last_no+1,last_no);

items[last_no+1] = items[last_no];

}

printf("last_no = %d",last_no);


items[last_no + 1]   = cur_value;


for (i = 0; i < n; i++)

{

printf("%d,",items[i]);

}

printf("\n");

}


}


int main()

{


int items[] = {1,2,3,489,5,9,88,799,14,6666};


int i = 0;

int n = 10;


InsertSort(items,n);


for (i=0; i<n; i++)

{

printf("%d\n",items[i]);

}


return 0;

}