使用java将数组从最小到最大排序

时间:2012-01-19 19:21:06

标签: java arrays sorting

我应该创建一个数组并将数字从最小到最大排序。以下是我到目前为止的情况:

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)); 
}
}

我在最后一行收到错误,我正在尝试将其打印出来。我做错了什么?

9 个答案:

答案 0 :(得分:15)

您的sort(int[] array)方法什么都不返回。它是无效的,因此您无法打印它的返回。

答案 1 :(得分:3)

您需要遍历数组并打印出每个值。你不能只是println(&lt; array&gt;)。相反,尝试:

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

将遍历数组中的每个元素并将其打印出来。

您也可以使用commons-lang's ArrayUtils.toString()方法自动为您完成此操作,但我假设由于这是一项家庭作业,您不能只使用外部库为您完成工作。

答案 2 :(得分:2)

也许你可以使用lambdaj(download herewebsite),这个库非常强大,可用于管理集合(..list,数组),下面的代码非常简单,工作完美:

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 添加到您的项目中。我希望这会有用。

注意:这可以帮助您假设您可以选择代码。

答案 3 :(得分:1)

出于学习目的编写自己的排序函数很好但是对于生产代码总是使用java API Arrays.sort

答案 4 :(得分:0)

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

public static void用于不返回任何内容的方法。试试这个:

public static int sort (int[] arrayname)

答案 5 :(得分:0)

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;
}       

答案 6 :(得分:0)

这是&#34;清洁工&#34;这样做的方式(我认为):

    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]);
    }

    }

希望这有帮助!

答案 7 :(得分:0)

数组排序,不使用java中的内置函数 ......只是让新文件没有这个名字 - &gt; (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]);
    }

}

}

答案 8 :(得分:-2)

使用java Extentation.i-e(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]);
        }

}

}