今天在写插入排序时,始终报下标越界的错误,检查了几遍,发现并运算的顺序写错了
public static void straightInsertSort(int[] arr){
int i,j,temp;
for(i=1;i<arr.length;i++){
if(arr[i]<arr[i-1]){
temp = arr[i];
for (j=i-1; ***arr[j]>temp && j>=0***;j--) {
arr[j+1] = arr[j];
}
arr[j+1] = temp;
}
}
}
由于判断语句先判断arr[j]>temp,所以直接报错下标越界,把并运算的两个判断语句交换一下位置就可以了