java - 按升序对数组进行排序

标签 java arrays sorting joptionpane

所以我现在有这个代码。它运行,但它不会按升序对数字数组进行排序,我不知道应该做什么。我是java新手所以...

import javax.swing.JOptionPane;

public class ThirdClass
{
    public static void main (String args[]){

        int a = 0;
        int b;

        int numbers;
        int length = Integer.parseInt(JOptionPane.showInputDialog (null, "Input set size", JOptionPane.QUESTION_MESSAGE));
        int ctr = 1;
        int num[] = new int[length];

            for(int i = 0; i < length; i++){
            num[i] = Integer.parseInt(JOptionPane.showInputDialog (null, "Enter number " + ctr, JOptionPane.QUESTION_MESSAGE));
                    ctr++;
            }

            for(int i = 0; i < length; i++){
                for(int j = i+1; j < length; j++){
                        if(num[i]<num[j]){
                            a = num[i];
                            num[i] = num[j];
                            num[j] = a;
                        }
                    }
            }

            for(int i = 0; i < length; i++){
            JOptionPane.showMessageDialog (null, "Output: " + num[i] , "Value", JOptionPane.INFORMATION_MESSAGE);
            }
    }
}

最佳答案

您似乎正在尝试进行冒泡排序,但您的逻辑有点不对劲。将双 for 循环更改为:

for (int i=0; i < length; ++i) {
    for (int j=1; j < (length-i); ++j) {
        if (num[j-1] > num[j]){
            a = num[j-1];
            num[j-1] = num[j];
            num[j] = a;
        }
    }
}

关于java - 按升序对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31197521/

相关文章:

java - JAXB : XmlElementWrapper nested nodes

java - 如何使用 PDFBox 2 和 Boxable 创建内表?

javascript - Meteor JS - 添加新帖子时 $sort 不起作用

c# - 如何使用 C# 将 Sorted DataView 分配给 DataTable 并保持排序状态?

java - Spring Data Rest 支持 json 和 xml

java - Eclipse 插件 - 保存和启动对话框

比较两个不同类型的数组

php - 使用 array_count_values 提供的数据

javascript - 使用 HTML 按钮执行 PHP 和 SQL

bash - 使用awk对ngram单词进行排序