求解决呀,才写下插入排序就有有关问题了
求解决呀,才写下插入排序就有问题了
代码如下
int[] intarray = new int[]{12,7,34,8,3,32,765,9,4,6};
for(int i=0;i<intarray.length;i++){
int sortKey = intarray[i];
int j = i-1;
while(j>0&&intarray[j]>sortKey){//这部分判断导致第一二个数不能排序
int temp = intarray[j+1];
intarray[j+1] = intarray[j];
intarray[j] = temp;
j--;
}
intarray[j+1] = sortKey;
for(int b=0;b<intarray.length;b++){
System.out.print(intarray[b]+" ");
}
System.out.print(" sortKey:"+sortKey);
System.out.println();
}
System.out.println("---------------------------");
for(int i=0;i<intarray.length;i++){
System.out.print(intarray[i]+" ");
}
高手求解呀~~~~
------解决方案--------------------
如果这是书上的伪代码
楼主我建议你不要看这本书了
这个代码很没水准
这个代码里的 intarray[j+1] = sortKey; 完全可以删去
当然用 intarray[j+1] = sortKey; 最好
那样的话,上边的
int temp = intarray[j+1];
intarray[j+1] = intarray[j];
intarray[j] = temp;
j--;
中就是过多的赋值了,完全没必要
用
intarray[j+1] = intarray[j];
j--;
就够了
代码如下
int[] intarray = new int[]{12,7,34,8,3,32,765,9,4,6};
for(int i=0;i<intarray.length;i++){
int sortKey = intarray[i];
int j = i-1;
while(j>0&&intarray[j]>sortKey){//这部分判断导致第一二个数不能排序
int temp = intarray[j+1];
intarray[j+1] = intarray[j];
intarray[j] = temp;
j--;
}
intarray[j+1] = sortKey;
for(int b=0;b<intarray.length;b++){
System.out.print(intarray[b]+" ");
}
System.out.print(" sortKey:"+sortKey);
System.out.println();
}
System.out.println("---------------------------");
for(int i=0;i<intarray.length;i++){
System.out.print(intarray[i]+" ");
}
高手求解呀~~~~
------解决方案--------------------
如果这是书上的伪代码
楼主我建议你不要看这本书了
这个代码很没水准
这个代码里的 intarray[j+1] = sortKey; 完全可以删去
当然用 intarray[j+1] = sortKey; 最好
那样的话,上边的
int temp = intarray[j+1];
intarray[j+1] = intarray[j];
intarray[j] = temp;
j--;
中就是过多的赋值了,完全没必要
用
intarray[j+1] = intarray[j];
j--;
就够了