2012-10-20 105 views
1

我必須在冒泡排序中以降序對一串名稱進行排序。我試過了,但沒有奏效。這是我到目前爲止有:冒泡排序字符串降序

public static void bubbleSort(Student[] array) 
{ 
    for(int i=(array.length); i>0; i--) 
    {  
     for(int j=1; j<(array.length-i); j++) 
     { 
      if(array[j].getName().compareTo(array[j+1].getName())<0)  
      { 
       Student Temp = array[j]; 
       array[j] = array[j+1]; 
       array[j+1] = Temp; 
      }  
     } 
    } 
} 
+1

我們不會解決所有的[功課](http://stackoverflow.com/questions/12988751/cannot-call-實例方法從靜態方法);) – nkr

+1

具體來說,它不工作?作爲輸出的結果與你期望得到的結果是什麼?總的來說,我們在這裏喜歡具體的問題,但至少要儘可能具體地說明你不瞭解的內容。 – jrajav

+2

既然是功課,你應該自己動手。這意味着學習如何進行調試......放入一些調試輸出以指定您正在處理的數組索引和值,然後逐步瀏覽程序並查看發生了什麼。 –

回答

0

試試這個邏輯

import java.util.*; 

    public class BubbleSort { 

    public static void main(String[] args) { 
    String l[]={"ABCD" , "XYZ" , "DEF" , "PQR"}; 
    BubbleSort(l); 
    for(int i=0; i<l.length; i++) 
    { 
     System.out.println(l[i]); 
    } 
    } 

private static void BubbleSort(String[] array) { 
    String t; 
    for(int i=0; i<array.length; i++) { 
     for(int j=0; j<array.length-1-i; j++) { 
     if(array[j].compareTo(array[j+1])>0) { 
      t= array[j]; 
      array[j] = array[j+1]; 
      array[j+1] = t; 
     } 
    } 
    } 
} 
    } 
+0

這不會工作,因爲問題是關於比較名稱,而不是數字。 – nkr

+0

@nkr: - 我希望這會現在工作! –

+0

爲什麼我通過t變量最後一行得到一個錯誤我試圖轉換t型給學生,但它仍然不會工作 –