当我尝试调用冒泡排序类时出现了一些错误。但我找不到它。 这是我的冒泡排序类,应该没问题:
public static void Sort2(double[] yourNumbers) {
double swap;
for(int i = 0; i < yourNumbers.length-1; i++){
for(int d = 0; d < yourNumbers.length-1; d++){
if(yourNumbers[d] > yourNumbers[d+1]){
//swap feature
swap = yourNumbers[d];
yourNumbers[d] = yourNumbers[d+1];
yourNumbers[d+1] = swap;
}
}
}
}
这是我的主要方法(当我调用Sort2
方法时出现错误:
sort.java类型中的Sort2(double [])方法不适用 arguments(int)
System.out.println("Size");
int yourNumbers = scan.nextInt();
double[] array = new double[yourNumbers];
System.out.println("Numbers");
for(int i = 0; i < array.length; i++) {
System.out.println(array[i]);
array[i] = scan.nextDouble();
}
Sort2(array);
我知道这里被问了很多次,但我觉得我做不到。你能帮帮我吗?
PS:我不允许使用ArrayList
。
import java.util.Scanner;
public class Bublesort{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Size");
int yourNumbers = scan.nextInt();
double[] array = new double[yourNumbers];
System.out.println("Numbers");
for(int i = 0; i < array.length; i++) {
System.out.println(array[i]);
array[i] = scan.nextDouble();
}
Sort2(array);
**System.out.println(Arrays.toString(array));**
}
public static void Sort2(double[] yourNumbers) {
double swap;
for(int i = 0; i < yourNumbers.length - 1; i++){
for(int d = i + 1; d < yourNumbers.length; d++){
if(yourNumbers[i] > yourNumbers[d]){
//swap feature
swap = yourNumbers[i];
yourNumbers[i] = yourNumbers[d];
yourNumbers[d] = swap;
}
}
}
}}
答案 0 :(得分:0)
错误表明您无法将int
传递给接受double[]
作为argument
的方法。
System.out.println("Size");
int yourNumbers = scan.nextInt();
double[] array = new double[yourNumbers];
System.out.println("Numbers");
for(int i = 0; i < array.length; i++) {
System.out.println(array[i]);
array[i] = scan.nextDouble();
}
sort2(array);//**should work fine**
答案 1 :(得分:0)
为了使用ArrayList
,您必须导入java.util.ArrayList;
您将收到错误,因为您将整数传递给Sort2()函数。你需要传递一系列双打。另外,你的sort2函数会对数组进行排序,但你无法引用它,因为java通过值传递参数..你应该有你的函数double[] sort2(double[] array)
然后返回已排序的数组。
答案 2 :(得分:0)
更好的排序例程版本应该类似于:N *(n-1)/ 2次迭代vs n ^ 2
for(int i = 0; i < yourNumbers.length - 1; i++){
for(int d = i + 1; d < yourNumbers.length; d++){
if(yourNumbers[i] > yourNumbers[d]){
//swap feature
swap = yourNumbers[i];
yourNumbers[i] = yourNumbers[d];
yourNumbers[d] = swap;
}
}
}