我想在main方法中调用代码,但它似乎并没有真正起作用。
public class RecursiveSelectionSort {
public static void sort(double [] list){
sort(list, 0, list.length -1);
}
public static void sort(double [] list, int low, int high){
if (low < high){
int indexOfMin = low;
double min = list[low];
for(int i = low + 1; i <= high; i++){
if(list[i]< min){
min = list[i];
indexOfMin = i;
}
}
list[indexOfMin] = list[low];
list[low] = min;
sort(list, low + 1, high);
}
}
public static void main(String [] args){
double [] list = {3.0,4.0,1.0};//I tried but it doesn't work
System.out.print(sort(list));//it doesn't go to sort(list);
}
}
我想知道我是否可以打电话给它。这似乎很容易,但确实令人困惑。
答案 0 :(得分:5)
方法sort
会返回void
,但您尝试将其结果传递给print
。试试这个:
double [] list = {3.0,4.0,1.0};
sort(list);
System.out.print(Arrays.toString(list));
注意我还使用了实用方法Arrays.toString
,这是必要的,因为数组本身不会覆盖toString
来显示其内容。
答案 1 :(得分:1)
sort
是一种void
方法,您无法打印其结果。首先尝试sort
,然后然后分别打印列表。
答案 2 :(得分:0)
println
函数不支持void
个参数。 IT期望一些非void 对象作为输入。但是你的排序函数返回没有。这就是它不打印的原因。
答案 3 :(得分:0)
public class Mainn {
public static void sort(double [] list){
//change 1
System.out.println("Inside sort");
sort(list, 0, list.length -1);
}
public static void sort(double [] list, int low, int high){
if (low < high){
int indexOfMin = low;
double min = list[low];
for(int i = low + 1; i <= high; i++){
if(list[i]< min){
min = list[i];
indexOfMin = i;
}
}
list[indexOfMin] = list[low];
list[low] = min;
sort(list, low + 1, high);
}
}
public static void main(String [] args){
double [] list = {3.0,4.0,1.0};//I tried but it doesn't work
//change 2
sort(list);
//return type of sort was void
//print sorted list here
System.out.println(Arrays.toString(list));
}
}
答案 4 :(得分:0)
试试这个
public class RecursiveSelectionSort {
public static double[] sort(double [] list){
return sort(list, 0, list.length -1);
}
public static double[] sort(double [] list, int low, int high){
if (low < high){
int indexOfMin = low;
double min = list[low];
for(int i = low + 1; i <= high; i++){
if(list[i]< min){
min = list[i];
indexOfMin = i;
}
}
list[indexOfMin] = list[low];
list[low] = min;
return sort(list, low + 1, high);
}
else return list;
}
public static void main(String [] args){
double [] list = {3.0,4.0,1.0};
list = sort(list);
for (int i = 0; i < list.length; i++)
System.out.println(list[i]);
}
}