2017-03-08 32 views
-6

我的清單沒有正確排序。有人可以幫忙看看這段代碼嗎?我有一個排序數組,但它沒有被排序。我想要這個主要方法來排序它。用java排序我的想法

public class Main{ 
    public static void main (String [] args){ 
     int [] sort = {3, 1, 2, 4}; 
     int temp = 0; 
     int backIndex = sort.length; 
     int index = 0; 
     while(index <= sort.length){ 
      if (sort[index] >= sort[backIndex]){ 
       temp = sort[index]; 
       sort[index] = sort[backIndex]; 
       sort[backIndex] = temp; 
      }else{ 
       System.out.print(temp + "," + sort[backIndex]); 
      } 
      System.out.print(sort[index] + "," + sort[backIndex]); 
      index++; 
      backIndex--; 
     } 
    } 
} 
+0

你的代碼應該做什麼? –

+1

你得到的錯誤是什麼? – Jeremy

+4

「幫忙看看這段代碼」是不是很明確的問題描述。請花點時間並描述*具體*您遇到的問題。 – Pshemo

回答

0

所以我不知道這是如何排序算法(ATLEAST它看起來像一個)應該能夠正常工作,但至少我可以幫你瞭解例外。

您的異常告訴您,第10行中的內容嘗試訪問不存在的索引。在問題中執行代碼時,sort [backIndex]將嘗試讀取sort [4]。 然而,數組中只有一個索引3,如指數爲0

Array: 3, 1, 2, 4 
Index: 0, 1, 2, 3 

開始這就是爲什麼sort.lengh-1工程和sort.length並不像「長」將檢索數組中的對象數量爲4,並且這不是有效的索引(超出範圍 - >不在0和3之間)。 在您的while循環中,條件更改爲(索引< sort.length)或(索引< = sort.length -1),作爲INT指數將其他方式增加至4,使Java來訪問不存在索引排序[4]。

希望這有助於。閱讀一些關於你得到的例外情況。同時嘗試提出更好的問題,因爲這會讓你很快被禁止(經驗)。

+0

該代碼應該對數字進行排序。是的,我有像ArrayIndexOutOfBounds錯誤。我嘗試過調試,但沒有成功,所以我需要關於它如何工作的幫助。但是我已經完成了所建議的內容,但是我仍然遇到錯誤:if(sort [index]> = sort [backIndex]) – TundeOre