我应该创建一个数组并将数字从最小到最大排序。以下是我到目前为止的情况:
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));
}
}
我在最后一行收到错误,我正在尝试将其打印出来。我做错了什么?
答案 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 here,website),这个库非常强大,可用于管理集合(..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]);
}
}
}