我正在为编程入门课做作业,它是冒泡排序。代码可能有缺陷,但我并不是在寻找人来解决该问题。我的问题是,我正在尝试打印它。我得到的条件是该方法必须由“public static void sort(int[] array)”行的 void 方法定义。所以,如果我尝试导入数组,并使用 System.out.println(Arrays.toString(sort(array)));
在我的主要方法中,它不起作用,因为我收到编译器错误,指出 void 不适用。如果我尝试将其放入主方法的循环中,它会告诉我存在不兼容的类型。找到的是一个void,需要的是一个int[],但是赋值的原始条件是使用void方法。因此,话虽这么说,我应该出于测试目的将方法从 void 更改为 int[] 并将作业作为 void 提交,还是有办法用 void 打印此代码的输出,而我只是缺少是吗?
public static void sort(int[] array)
{
int[] y = new int[array.length];
for(int i = 0; i<=array.length-1; i++)
{
for(int j = i+1; i<=array.length-1; j++)
{
if(array[i] < array[j]){
y[i] = array[j];
}
if(array[i] >= array[j]){
y[i] = array[i];
}
}
for(int k = 0; k<y.length; k++){
System.out.println(y[k]);
}
}
} //end of sort method
最佳答案
问题是您在排序方法中创建了一个新的本地数组,由于分配的限制,您显然无法返回该数组。
int[] y = new int[array.length];
您的方法将无效,因为传递的数组将保持不变。您需要就地进行排序,即不创建新数组。这样,如果您从主方法传递它,它就会被排序,并且您可以在那里打印它。
Bubble sort应该使用swap方法,所以你只需要一个临时变量。
关于java - 如何打印 void 方法的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883298/