2013-11-27 50 views
3

我有我的方法的問題,當我嘗試排序:排序陣列中的

這裏是我的代碼如下所示:

public void sort() 
{ 
    boolean found=true; 
    int i = 0; 
    String temp; 
    while(found) 
    { 
    found = false; 

    for (i = 0; i<cars.length-1; i++) 
    { 
     if (cars[i].compareToIgnoreCase(cars[i+1])> 0) 
     { 

我走到這一步,但仍然不知道如何排序他們?

+0

任何理由,你爲什麼不使用sort()函數? –

回答

1

如何使用內置的方法? Arrays.sort()將工作得很好。

2

嘗試

Arrays.sort(cars); 

如果汽車隨後非標準型編寫自己的Comparator(允許其命名爲comp),並做到:

Arrays.sort(cars, comp); 

Here's文檔Comparator接口。

更新 或者,只是實現Comparable接口類汽車,正如Polywhirl先生所說。

+0

或有'Car'執行'Comparable'如果它是一類... –

+0

@ Mr.Polywhirl謝謝,我定我的職務。 –

2

您已經初始化溫度,只需將汽車[一]溫度,然後汽車[I + 1]到汽車[I],然後溫度以汽車[I + 1],然後發現= TRUE離開循環翻譯這代碼

1

你想要什麼方式這個數據排序?另外我假設你想手動做到這一點?如果不是,那麼使用上面提到的內置在Arrays.sort()方法中的Java。

1

下面是一個完整實現bubble sort algorithm in Java from Rosetta Code的:

public static <E extends Comparable<? super E>> void bubbleSort(E[] comparable) { 
    boolean changed = false; 
    do { 
     changed = false; 
     for (int a = 0; a < comparable.length - 1; a++) { 
      if (comparable[a].compareTo(comparable[a + 1]) > 0) { 
       E tmp = comparable[a]; 
       comparable[a] = comparable[a + 1]; 
       comparable[a + 1] = tmp; 
       changed = true; 
      } 
     } 
    } while (changed); 
} 

因爲你可能這樣做的一類,你應該試着去了解發生了什麼。使用大量的System.out.println()語句來顯示程序如何運行。

你也應該瞭解如何使用調試器在你的IDE。它可以讓你看到程序如何逐行運行,以及數據如何變化。