//直接插入排序
#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;
}