直接插入排序问题
1、void insert_sort(int a[],int length)
2、{
3、int t;
4、for(int i=0;i<length;i++)
5、{
6、t=a[i]; //将待排序的元素a[i]赋给t
7、 for(int j=i-1;j>=0&&a[j]>t;j--)
8、{
9、a[j+1]=a[j]; //把比t大 (a[j]>t) 的元素,全部后移一个位置
10、}
11、a[j+1]=t; //把待排序的t插入到a[j+1].完成插入排序过程。
}
}
问题是第九行a[j+1]=a[j]; //把比t大 (a[j]>t) 的元素,全部后移一个位置
中不是已经把a[j]后移到a[j+1]的位置吗?那为什么第11行还可以把 t 的值插入到a[j+1]这个位置;