2012-10-20 74 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型给学生,但它仍然不会工作 –