【发布时间】:2014-10-16 00:46:40
【问题描述】:
我是一名编程初学者,我对函数的返回值有疑问。
我正在学习 Java。
我附上了我书中的代码,其中包含经典的选择排序。
现在显然书中的代码有效。但是,主要功能中的这三行是我提出问题的基础:
int []a=new int[]{1,9,2,8,3,7,4,6,5};
排序(a);
if(ascending(a)) System.out.println("Works");
所以我的问题是:
在第 2 行中,如果 sort() 函数无效,我如何检索已排序的 a[]?
这行不应该是:a = sort(a)?
public class SelectionSort
{
public static void main(String[]args)
{
int []a=new int[]{1,9,2,8,3,7,4,6,5};
sort(a);
if(ascending(a)) System.out.println("Virðist virka");
else System.out.println("Virkarekki");
}
public static void sort(int[]a)
{
if(a.length<2) return;
int i=0;
while(i!=a.length)
{
int k=i+1;
while(k!=a.length)
{
if(a[k]<a[i])
{
int tmp=a[i];
a[i]=a[k];
a[k]=tmp;
}
k++;
}
i++;
}
}
public static boolean ascending(int[]a)
{
if(a.length<2) return true;
int i=1;
while(i!=a.length)
{
if(a[i-1]>a[i]) return false;
i++;
}
return true;
}
}
【问题讨论】:
-
sort方法修改了你传递的数组,所以你不需要有返回类型。 -
正如@August 所指出的,
sort方法更改了原始数组。它与 Java 如何处理参数有关:stackoverflow.com/questions/40480/…
标签: java