将双数组排序为升序

时间:2013-07-15 18:04:02

标签: java arrays sorting

我目前正在尝试手动将双数组排序为升序。我遇到的问题是输出只列出了顶部的第一个最小值(这是正确的),但列出了给定为0.0的其余值。 (值范围从-5到+20)。下面是我对排序的编码尝试。任何帮助将不胜感激。谢谢。

             int index; 
             double temp;

             for(index = 0; index < x.length; index++)
               { 
                 for(int j = 0; j < x.length - 1; j++)
                    {
                       if(x[j + 1] < x[j])
                          {
                             temp = x[j + 1];
                             x[j + 1] = x[j];
                             x[j] = temp;  
                           }
                      }
                }

3 个答案:

答案 0 :(得分:1)

这几乎是你到达那里的。试试这个:

 public static void sort(int[] x) {
  boolean sorted=true;
  int temp;

  while (sorted){
     sorted = false;
     for (int i=0; i < x.length-1; i++) 
        if (x[i] > x[i+1]) {                      
           temp       = x[i];
           x[i]       = x[i+1];
           x[i+1]     = temp;
           sorted = true;
        }          
  } 

}

但科林是对的。你最好使用Arrays.sort。

答案 1 :(得分:1)

您可以使用java.util包中的Arrays.sort(x)对数组进行排序。

答案 2 :(得分:1)

你很接近,但你需要将x [index]与x [j]:

进行比较
for (int index = 0; index < x.length - 1; index++) {
  for (int j = index + 1; j < x.length; j++) {
    if (x[j] < x[index]) {
      temp = x[j];
      x[j] = x[index];
      x[index] = temp;
    }
  }
}