在研究直接插入排序的时候,写了个代码,如下:
static void zjcr1(int[] a)
{
int i,j,temp;
//由于比较的时a[j]>a[j+1],所以i的循环条件是a.length-1
for(i=1;i<a.length-1;i++)
{
for(j=0;j<i+1;j++)
{
if(a[j]>a[j+1])
{
temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
}
只看逻辑的话if(a[j]>a[j+1])这个地方是不可以完成排序的,但是,实际代码执行后,可以完成数组的排序,看了好久页没看明白,大家帮忙看一下。。。
你用的測試用例不對,試試這個
結果:
建議還是用比較標準的排序方式