【问题标题】:Sorting double arrays into ascending order将双精度数组按升序排序
【发布时间】:2013-07-13 16:57:06
【问题描述】:

我目前正在尝试手动将 Double Array 排序为升序。我遇到的问题是输出仅在顶部列出了第一个最小值(这是正确的),但将其余值列出为 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;  
                           }
                      }
                }

【问题讨论】:

  • 您是否有不能使用Arrays.sort 的原因?它的实现将比您想出的要好得多。
  • 您的冒泡排序实现几乎是正确的。你能发布你的完整程序吗?可能是你搞砸了你的输入。

标签: java arrays sorting


【解决方案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;
    }
  }
}

【讨论】:

  • 谢谢,但我尝试了修改后的代码,但得到的结果和以前一样,0.0 列为其他所有内容。我正在从文件中读取值。知道为什么吗?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    这几乎是你到达那里的冒泡排序。试试这个:

     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。

    【讨论】:

    • 我比我的 For 循环更了解这个逻辑,但我得到的结果和以前一样。我正在从文件中读取值。我尝试了 Arrays.sort (Arrays.sort(x);) 但这导致了一些更奇怪的事情,它列出了最小值,然后是一堆 0.0,然后是正确的值列表,按顺序...
    • 如果 Arrays.sort(x) 给了你一堆 0.0,那么很可能你的数组中有一堆。我怀疑错误出在输入中,而不是在排序代码中。
    猜你喜欢
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 2014-09-06
    相关资源
    最近更新 更多