簡體   English   中英

按升序對整數排序-Java

[英]Sort integer in Ascending Order - Java

我需要幫助,了解如何對數字進行排序。 到目前為止,我想出的是以下內容,但沒有奏效。 您能指出錯誤並告訴我該怎么做嗎?

我看到有些人使用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);
       }
    }
}   

沒有解決方案。 這個想法是采取幾個步驟,做一個循環。 並假設您在中間。 第一部分已經排序,其余部分將要完成。

然后針對已排序的內容處理當前元素。

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
}

這是一個通用的技巧:假設部分已經完成,邁出一小步,然后繼續。

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。

有關更多詳細信息,請參見此處官方Java文檔。

程序現在的運行方式:它將打印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
            }
        }
    }

這可能是最容易理解的一種。 基本上,要對數組長度進行多次遍歷,然后對數字進行梳理,並盡可能增加下一個最高的數字。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM