Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用冒泡排序Java时遇到问题_Java_Sorting_Bubble Sort - Fatal编程技术网

使用冒泡排序Java时遇到问题

使用冒泡排序Java时遇到问题,java,sorting,bubble-sort,Java,Sorting,Bubble Sort,我正在尝试实现泡泡排序,但它不起作用!帮我找个问题 代码: 公共类主{ 公共静态int=0; 公共静态整数排列长度; 公共静态int[]数组=新int[10]; 公共静态void main(字符串[]args){ 随机=新随机(); 对于(inti=0;i变化 for(inti=0;iChange for(inti=0;ipublicstaticinte=0; 公共静态整数排列长度; 公共静态int[]数组=新int[10]; 公共静态void main(最终字符串[]args){ 最终随机数=

我正在尝试实现泡泡排序,但它不起作用!帮我找个问题

代码:

公共类主{
公共静态int=0;
公共静态整数排列长度;
公共静态int[]数组=新int[10];
公共静态void main(字符串[]args){
随机=新随机();
对于(inti=0;i变化

for(inti=0;iChange

for(inti=0;i
publicstaticinte=0;
公共静态整数排列长度;
公共静态int[]数组=新int[10];
公共静态void main(最终字符串[]args){
最终随机数=新随机数();
对于(inti=0;i
publicstaticinte=0;
公共静态整数排列长度;
公共静态int[]数组=新int[10];
公共静态void main(最终字符串[]args){
最终随机数=新随机数();
对于(int i=0;i请尝试以下方法:

public class Main {

    public static int e=0;
    public static int[] array = new int[10];

    public static void main(String[] args) {
        Random random = new Random();
        for(int i=0;i<array.length;++i){
            array[i]=random.nextInt(10);
            System.out.print(" "+array[i]);
        }

        System.out.println();
        for (int i =0;i<array.length;i++) {
            for (int j = 0; j < array.length - 1; j++) {
                if (array[j] > array[j + 1]) {
                    e = array[j + 1];
                    array[j + 1] = array[j];
                    array[j] = e;
                }
            }
        }
        for(int i=0;i<array.length;++i){
            System.out.print(" "+array[i]);
        }
    }
}
正在导致问题。您不需要更改该值,因为它会影响for循环的工作。

请尝试以下操作:

public class Main {

    public static int e=0;
    public static int[] array = new int[10];

    public static void main(String[] args) {
        Random random = new Random();
        for(int i=0;i<array.length;++i){
            array[i]=random.nextInt(10);
            System.out.print(" "+array[i]);
        }

        System.out.println();
        for (int i =0;i<array.length;i++) {
            for (int j = 0; j < array.length - 1; j++) {
                if (array[j] > array[j + 1]) {
                    e = array[j + 1];
                    array[j + 1] = array[j];
                    array[j] = e;
                }
            }
        }
        for(int i=0;i<array.length;++i){
            System.out.print(" "+array[i]);
        }
    }
}

是导致问题的原因。您不需要更改该值,因为它会影响for循环的工作。

我没有看到变量
array
initialized/declared。冒泡排序的哪一部分要求您修改结束条件(array length变量)?我没有看到变量
数组
已初始化/声明。冒泡排序的哪一部分要求您修改结束条件(数组长度变量)?
for (int i =0; i<arraylength; i++) {
for (int i =0; i<array.length; i++) {
public static int e=0;
public static int arraylength;
public static int[] array = new int[10];

public static void main(final String[] args) {
    final Random random = new Random();
    for(int i=0;i<array.length;++i){
        array[i]=random.nextInt(10);
        System.out.print(" " + array[i]);
    }
    System.out.println();

    arraylength = array.length;
    for (int i =0;i<arraylength;i++) {

        for (int j = 1; j < arraylength - i; j++) {
            if (array[j - 1] > array[j]) {
                e = array[j - 1];
                array[j - 1] = array[j];
                array[j] = e;
            }
        }
    }
    for (final int element : array) {
        System.out.print(" " + element);
    }
}
public class Main {

    public static int e=0;
    public static int[] array = new int[10];

    public static void main(String[] args) {
        Random random = new Random();
        for(int i=0;i<array.length;++i){
            array[i]=random.nextInt(10);
            System.out.print(" "+array[i]);
        }

        System.out.println();
        for (int i =0;i<array.length;i++) {
            for (int j = 0; j < array.length - 1; j++) {
                if (array[j] > array[j + 1]) {
                    e = array[j + 1];
                    array[j + 1] = array[j];
                    array[j] = e;
                }
            }
        }
        for(int i=0;i<array.length;++i){
            System.out.print(" "+array[i]);
        }
    }
}
arraylength--;