我試圖按排序順序將元素添加到數組中。按排序順序將元素插入數組
這是我的代碼:
public class SortedInsertion {
public static void main(String[] args) {
int[] arr=new int[6];
arr[0]=5;
arr[1]=6;
arr[2]=9;
arr[3]=11;
System.out.println(Arrays.toString(arr));
insert(7,arr);
}
public static void insert(int val,int[] arr){
int i;
for(i=0;i<arr.length-1;i++){
if(arr[i]>val)
break;
}
for(int k=i;k<arr.length-1;k++){
arr[k+1]=arr[k];
arr[i]=val;
}
System.out.println(Arrays.toString(arr));
}
}
我發現了輸出爲: [5,6,9,11,0,0]
[5,6,7,9 ,9,9]
但出於把正確的是
5,6,9,11,0,0
5,6,7,9,11,0
'arr [k + 1] = arr [k]; arr [i] = val'被執行幾次(for循環)。因此輸出。 – TheLostMind 2014-10-01 07:11:09
只需使用'System.arraycopy'移動尾部並騰出空間。它更快,更清晰。 – 2014-10-01 07:12:45