[英]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.