按升序排序整数 - Java

时间:2016-05-03 15:32:27

标签: java arrays sorting

我需要帮助了解如何对数字进行排序。 以下是我到目前为止所提出的内容,但它并没有奏效。你能否指出错误并告诉我该怎么做?

我看到你们中的一些人使用java.util.Arrays。你能告诉我它的功能吗?

import static java.lang.System.*;
import java.util.*;

    public class Lab07v2_Task10{
    public static void main (String[] args){
            Scanner orcho = new Scanner (in);
            int quantity = 5;
            int[] myArray = new int [quantity];
            out.println("Please enter 5 numbers");

            for(int count = 0; count<myArray.length; count++){
                myArray[count] = orcho.nextInt();
            }

            int maxSoFar = myArray[0];

            for(int count = myArray.length-1; count>=0; count--){
                if(myArray[count] > maxSoFar){
                maxSoFar = myArray[count];
            }
            out.println(maxSoFar);
       }
    }
}   

3 个答案:

答案 0 :(得分:3)

没有解决方案。 我们的想法是采取几个步骤,做一个for循环。并假设你处于中间位置。第一部分已经排序,剩下的就要完成了。

然后根据已经排序的内容处理当前元素。

int maxSoFar = myArray[0];
for (int i = 1; i < myArray.length; i++) {
    // The array 0, ..., i-1 is sorted
    if (myArray[i] >= maxSoFar) {
        // Still sorted
        maxSoFar = myArray[i];
    } else {
        // myArray[i] must be shifted left
        ...
    }
    // Now the array 0, ..., i is sorted
}

这是一个普遍的伎俩:假设部分已经完成,只需要一小步,然后继续。

答案 1 :(得分:1)

java.util.Arrays.sort(int[])方法将int的指定数组按数字升序排序。

尝试一下..

// sorting array
  java.util.Arrays.sort(myArray);

   // let us print all the elements available in list
   System.out.println("The sorted int array is:");
   for (int number : myArray) {
   System.out.println("Number = " + number);
   }
   }

Arrays.sort是一种方法,它是java.util包中可用的实用方法。

其中Arrays是系统定义的Utility类,其中包含mehtod sort(int[])int[](数组)作为参数,并在对此数组进行排序后重新分配Array。

更深入的信息HereOfficial Java Docs

答案 2 :(得分:0)

你的程序现在运行的方式:它将打印5个数字,它打印的数字是它在该次迭代中找到的最高数字。

您希望它的工作方式:从最低到最高排序5个数字。然后打印这5个数字。这是程序中冒泡排序的实现:

for(int i = 0; i< myArray.length; i++){
        for(int j = 0; j < myArray.length-1; j++){
            if(myArray[j] > myArray[j+1]){ //if the current number is less than the one next to it
                int temp = myArray[j]; //save the current number 
                myArray[j] = myArray[j+1]; //put the one next to it in its spot
                myArray[j+1] = temp; //put the current number in the next spot
            }
        }
    }

这可能是最简单的理解。基本上,与阵列的长度一样多,梳理数字,然后尽可能多地使用下一个最高数字。

完成排序后,您可以打印数字。