在Java中不使用数组的情况下进行升序排序 [英] ascending sort without using arrays in java

查看:408
本文介绍了在Java中不使用数组的情况下进行升序排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此代码必须输入5个整数,然后不使用数组按升序和降序显示它们.但这只给了我最大的数字.没有数组怎么办?

This code has to enter 5 integers and then display them in ascending and descending orders without using arrays. But it gives me only the biggest number. How can i do it without arrays??

package assignment;

import javax.swing.JOptionPane;

public class q1 {

    public static void main(String[] args) {

        String a = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number1 = Integer.parseInt(a);
        String b = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number2 = Integer.parseInt(b);
        String c = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number3 = Integer.parseInt(c);
        String d = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number4 = Integer.parseInt(d);
        String e = JOptionPane.showInputDialog(null, "Please Enter a number", "Input", JOptionPane.QUESTION_MESSAGE);
        int number5 = Integer.parseInt(e);

        if (number1 > number2 && number1 > number3 && number1 > number4 && number1 > number5) {
            System.out.print(number1 + ",");
        } else if (number2 > number1 && number2 > number3 && number2 > number4 && number2 > number5) {
            System.out.print(number2 + ",");
        } else if (number3 > number1 && number3 > number2 && number3 > number4 && number3 > number5) {
            System.out.print(number3 + ",");
        } else if (number4 > number1 && number4 > number2 && number4 > number3 && number4 > number5) {
            System.out.print(number4 + ",");
        } else if (number5 > number1 && number5 > number2 && number5 > number3 && number5 > number4) {
            System.out.print(number5 + ",");
        }

    }
}

推荐答案

奇怪的是,在数组和列表之外的排序方面,我确实找不到很多东西,所以我会为您提供帮助.

Oddly I couldn't really find much on sorting outside of arrays and lists so I will assist you.

代码:

  int temp;

for (int count = 0; count < 4; count++)
{
    if ( number2 < number1)
    {
       temp = number1;
       number1 = number2;
       number2 = temp;
    }

    if ( number3 < number2)
    {
       temp = number2;
       number2 = number3;
       number3 = temp;
    }

    if ( number4 < number3)
    {
       temp = number3;
       number3 = number4;
       number4 = temp;
    }

    if ( number5 < number4)
    {
       temp = number4;
       number4 = number5;
       number5 = temp;
    }
}

System.out.println( number1 + " " + number2 + " " + number3 + " " + number4 + " " + number5);
System.out.println( number5 + " " + number4 + " " + number3 + " " + number2 + " " + number1);

学习一些算法及其工作原理后,排序将变得更加容易.在那之前,我希望这会有所帮助.

Sorting will get easier as you learn some of the algorithms and how they work. Until then, I hope this helps.

基本思想是检查每对并交换值.您需要多次执行此操作,以使最后一个值到达值列表的开头.

The basic idea is to check each pair and swap the values. You will need to do this multiple times in order to get the last value to the beginning of your list of values.

这篇关于在Java中不使用数组的情况下进行升序排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆