Java 使用用户';s输入=错误

Java 使用用户';s输入=错误,java,bubble-sort,Java,Bubble Sort,当我尝试调用我的气泡排序类时,出现了一些错误。但是我找不到它。 这是我的气泡排序类,应该可以: 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++){

当我尝试调用我的气泡排序类时,出现了一些错误。但是我找不到它。 这是我的气泡排序类,应该可以:

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;

                }
            }
        }
    }
我知道有人在这里问了很多次,但我觉得我做得不对。你能帮我吗? 注:我不允许使用
ArrayList

编辑:这是我现在使用的代码。仍然不起作用: 编辑2:在这个帮助下,我得到了那个。一条线解决一切

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;

                    }
                }
            }

    }}
import java.util.Scanner;
公共类Bublesort{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
系统输出打印项次(“尺寸”);
int yourNumbers=scan.nextInt();
double[]数组=新的double[yourNumber];
系统输出打印项次(“数字”);
for(int i=0;iyourNumbers[d]){
//交换功能
swap=你的号码[i];
yourNumbers[i]=yourNumbers[d];
您的号码[d]=交换;
}
}
}
}}

错误表示不能将
int
传递给接受
double[]
作为
参数的方法

   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**
System.out.println(“大小”);
int yourNumbers=scan.nextInt();
double[]数组=新的double[yourNumber];
系统输出打印项次(“数字”);
for(int i=0;i
要使用
ArrayList
必须导入
java.util.ArrayList由于向Sort2()函数传递一个整数,因此出现错误。您需要向其传递一个双精度数组。另外,sort2函数将对数组进行排序,但您将无法引用它,因为java按值传递参数。。您应该使用函数
double[]sort2(double[]array)
,然后返回排序后的数组。

排序例程的更好版本应该类似于:N*(N-1)/2次迭代与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;

                }
            }
        }
for(int i=0;iyourNumbers[d]){
//交换功能
swap=你的号码[i];
yourNumbers[i]=yourNumbers[d];
您的号码[d]=交换;
}
}
}

在哪里调用
Sort2()
方法?我没有看到从
main()
方法调用它。调用Sort2(数组)而不是Sort2(yourNumbers);是的,谢谢,我添加了Sort2方法。你仍然得到编译器错误还是编译失败?不,代码可以工作,但代码所做的不是我想要的。当用户键入不同的双精度数字时,它应该在Buble-alg.Oh的帮助下进行排序,您的意思是不允许使用ArrayList类。。。这对你来说是模棱两可的,我的回答对你来说仍然是一个解决办法。没有必要投否决票……但你在参考部分错了!引用的值已传递,因此更改将影响原始数组!完美的例子:Arrays.sort()是一个void方法…这将打印什么
int[]array={3,2,1}
数组。排序(数组)
用于(int i=0;i

System.out.println(数组[i])
我的观点与arraylistLook无关,因为所有参数都是通过java中的值传递的:正确!对于作为引用数据类型的参数,传递引用的值。因此,参数是对与参数相同的对象的引用。即使这个解也不起作用。错误是怎么说的??你能把你的相关代码贴在你出错的地方吗??
         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;

                }
            }
        }