2014-05-01 127 views
-3

所以我必須編寫一個插入排序代碼,將排序隨機整數數組,這個數組已經設置好,並且工作正常,除了我的排序不是,我繼承了我的:插入排序數組java

for(int i =1; i< numberSort.length-1;i++){ 
     int temp = numberSort[i]; 
     int j = i-1; 
     while((j >= 0) && (numberSort[j]>temp)){ 
      numberSort[j+1] = numberSort[j]; 
      j = j-1; 
     } 
     numberSort[j+1] = temp;   
    } 
} 

在我看來,這應該工作,但它不會,它會將數字從原來的位置移動,但不會按升序排列。感謝您提供的任何幫助。

+0

如果不是算法的部分嘗試:Arrays.sort(numberSort); – vanilla

回答

1

此代碼的工作對我來說:

public static void main(String[] args) { 
    int[] numberSort = {22,7,2, 5, 7, 1, 2, 9,33,55,12,1,0}; 
     for (int i = 1; i < numberSort.length; i++) { 
      int temp = numberSort[i]; 
      int j = i - 1; 
      while ((j >= 0) && (numberSort[j] > temp)) { 
       numberSort[j + 1] = numberSort[j]; 
       j = j - 1; 
      } 
      numberSort[j + 1] = temp; 
     } 
     for (int i = 0; i < numberSort.length; i++) { 
      System.out.println(numberSort[i]); 
     } 
    } 

給出輸出:

0 
1 
1 
2 
2 
5 
7 
7 
9 
12 
22 
33 
55 
+0

嗯..我不知道該怎麼做..我的數組已經創建並填充到這種排序方法的時間,所以我不完全確定爲什麼它不像你的工作是 – user3570902

+0

發佈你的整個代碼。 – Jakkra