簡體   English   中英

使用Java將數組從最小到最大排序

[英]Sort array from smallest to largest using java

我應該創建一個數組並對數字從最小到最大進行排序。 這是我到目前為止的內容:

public class bubbleSort {

public static void sort (int [] arrayName){
    int temp;
    for (int i = 0; i < arrayName.length-1; i++)
    {
        if(arrayName[i] > arrayName[i+1])
        {
            temp=arrayName[i];
            arrayName[i]=arrayName[i+1];
            arrayName[i+1]=temp;
            i=-1;
        }
    }
}

public static void main(String[] args) {
    int [] arrayName = new int[10]; 
    for (int i = 0; i < arrayName.length; i++) { 
      arrayName[i] = (int)(Math.random()*100); 
    } 

    System.out.println(sort(arrayName)); 
}
}

我在嘗試打印出來的最后一行出現錯誤。 我究竟做錯了什么?

您的sort(int[] array)方法不返回任何內容。 它是無效的,因此您無法打印其退貨。

您需要遍歷數組並打印出每個值。 您不能只使用println(<array>)。 相反,請嘗試:

// sort the array
sort(arrayName);
for( int sortedValue : arrayName )
  System.out.println( sortedValue );

這將遍歷數組中的每個元素並打印出來。

您還可以使用commons-lang's ArrayUtils.toString()方法為您自動完成所有操作,但是我假設由於這是一項家庭作業,因此您不能僅使用外部庫為您完成工作。

也許您可以使用lambdaj( 在此處下載網站 ),該庫對於管理集合(..list,arrays)非常強大,以下代碼非常簡單且完美運行:

import static ch.lambdaj.Lambda.on;
import static ch.lambdaj.Lambda.DESCENDING;
import static ch.lambdaj.Lambda.sort;
import java.util.Arrays;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        List<Integer> numberList =  Arrays.asList(4,8,2,3,4,1,13,2,5);

        List<Integer> sortedList = sort(numberList, on(Integer.class));
        System.out.println(sortedList); //shows ascending list

        sortedList = sort(numberList, on(Integer.class), DESCENDING);
        System.out.println(sortedList); //shows descending list
    }
}

此代碼顯示:

[1, 2, 2, 3, 4, 4, 5, 8, 13]
[13, 8, 5, 4, 4, 3, 2, 2, 1]

您可以在一行中對列表進行排序,這是一個簡單的示例,但是使用此庫,您可以解決更多問題。

sort(numberList, on(Integer.class));

您必須將lambdaj-2.4.jar添加到您的項目。 我希望這會有所幫助。

注意:這將幫助您假設可以使用代碼的替代方法。

出於學習目的,您可以編寫自己的sort函數,但對於生產代碼,請始終使用java API Arrays.sort

您需要更改排序方法-它什么也不返回。

public static void用於不返回任何內容的方法。 嘗試這個:

public static int sort (int[] arrayname)
public static int[ ] arraySortUp( int[ ] intArray )
{
        int toSwap, indexOfSmallest = 0;
        int i, j, smallest;

        for( i = 0; i < intArray.length; i ++ )
        {               

            smallest = Integer.MAX_VALUE;

            for( j = i; j < intArray.length; j ++ )
            {
                if( intArray[ j ] < smallest )
                {
                    smallest = intArray[ j ];
                    indexOfSmallest = j;
                }                   
            }

            toSwap = intArray[ i ];
            intArray[ i ] = smallest;
            intArray[ indexOfSmallest ] = toSwap;
        }

        return intArray;
}       

這是做到這一點的“更清潔”的方式(我認為):

    public static void main(String[] args) throws IOException {

    int[] array = {1,4,2,8,4,7,5 /*put in the numbers you want to sort*/};

    Arrays.sort(array); /*You will need to import this function*/

    for (int i = 0; i < array.length; i++) {
       System.out.println(array[i]);
    }

    }

希望有幫助!

數組排序而不使用Java中的內置函數......只需使新文件的名稱不更改->(ArraySorting.java).....運行項目並享受它!!!!

import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class ArraySorting 
{
 public static void main(String args[])
 {
    int temp=0;   
    Scanner user_input=new Scanner(System.in);
    System.out.println("enter Size elements...");
    int Size=user_input.nextInt();

    int[] a=new int[Size];
    System.out.println("Enter element Of an Array...");
    for(int j=0;j<Size;j++)
    {
        a[j]=user_input.nextInt();
    }     
    for(int index=0;index<a.length;index++)
    {
        for(int j=index+1;j<a.length;j++)
        {
             if(a[index] > a[j] ) 
             {
                 temp = a[index];
                 a[index] = a[j];
                 a[j] = temp;
             }
        }
    }
    System.out.print("Output is:- ");
    for(int i=0;i<a.length;i++)
    {
        System.out.println(a[i]);
    }

}

}

使用java Extentation.ie(ArraySorting.java)創建文件,然后粘貼代碼。...

import java.io.*;
import java.util.Arrays;
import java.util.Scanner;
public class ArraySorting 
{


public static void main(String args[])
{
       Scanner user_input=new Scanner(System.in);

       System.out.println("enter Size elements...");
       int Size=user_input.nextInt();

       int[] a=new int[Size];
       System.out.println("Enter element Of an Array...");
        for(int j=0;j<Size;j++)
        {
            a[j]=user_input.nextInt();
        }

        Arrays.sort(a);       
        for(int index=0;index<a.length;index++)
        {
            System.out.println(a[index]);
        }

}

}

暫無
暫無

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

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