我的插入排序輸出不正確。當我試圖調用insertionSort方法時,返回的數組未被排序插入排序輸出不符合預期
是否正確使用break語句?
public int[] insertionSort(int [] arr){
for(int i=1;i<arr.length;i++){
for(int j=0;j<=i-1;){
int temp;
if(arr[i] < arr[j]){
temp=arr[i]; arr[i]=arr[j]; arr[j]=temp;
break;
}
else j++;
}
}
return arr;
}
調用的方法與int [] array = {10,5,6,7,1,9,3,8}
,但結果是不正確的:
輸出排序後:1,3,7,8,5,10,6,9,//輸出未排序但它由有些
請嘗試搜索插入排序的正確java實現並與您的問題進行比較以找出問題 – rafid059
爲什麼你在if語句中打破? –
如果內部發生了什麼,你能解釋一下嗎? –