java中使用布尔值的气泡弹出。 import java.util.*; 公共课泡沫 { 公共静态void main(字符串[]args) { int Bub[]=新int[6]; 随机随机数=新随机数(); 布尔完成=假; 对于(int x=0;x

java中使用布尔值的气泡弹出。 import java.util.*; 公共课泡沫 { 公共静态void main(字符串[]args) { int Bub[]=新int[6]; 随机随机数=新随机数(); 布尔完成=假; 对于(int x=0;x,java,for-loop,while-loop,boolean,bubble-sort,Java,For Loop,While Loop,Boolean,Bubble Sort,而言,问题在于切换算法。您要分配两次临时值 import java.util.*; public class Zhangbubble { public static void main (String[] args) { int Bub[] = new int[6]; Random randy = new Random(); boolean Done = false; for (int x=0; x<6; x

而言,问题在于切换算法。您要分配两次临时值

import java.util.*;

public class Zhangbubble
{
    public static void main (String[] args)
    {
        int Bub[] = new int[6];
        Random randy = new Random();
        boolean Done = false;
        for (int x=0; x<6; x++)
        {
            Bub[x] = randy.nextInt(100);
            System.out.println (Bub[x]);
        }
            System.out.println ("This is the original array");
            while (! Done)
            {
                Done = true;
                for (int x = 0; x<Bub.length-1; x++)
                {
                if(Bub[x+1] > Bub[x])
                {
                    int temp = Bub[x];
                    Bub[x] = Bub[x+1];
                    temp = Bub[x+1];
                    Done = false;
                }
                else
                {
                    Done = false;
                }

            }
            for(int x = 0; x<6; x++)
            {
                System.out.print(Bub[x]+" ");
            }
        }

    }
}
实际上,排序算法本身也可能有一些改进。就我个人而言,我喜欢这样做:

 int temp = Bub[x];
            Bub[x] = Bub[x+1];
            temp = Bub[x+1]; //Here should assign Bub[x+1] to temp
            //Example: Bub[x+1] = temp
公共类排序{
私有静态int[]数组={3,8,-1,7,0,3};
公共静态void main(字符串[]args){
for(int i=0;i数组[j]){
int temp=数组[i];
数组[i]=数组[j];
数组[j]=温度;
}
}
}
for(int i=0;i
这项工作

public class Sort {
    private static int[] array = { 3, 8, -1, 7, 0, 3 };

    public static void main(String[] args) {

        for(int i = 0; i < array.length - 1; i++) {
            for(int j = i + 1; j < array.length; j++) {

                if(array[i] > array[j]) {
                    int temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }

        for(int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }
}
publicstaticvoidmain(字符串[]args){
int Bub[]=新int[6];
随机随机数=新随机数();
布尔完成=假;

对于(int x=0;xa作为提示,您可能希望在代码中遵循Java约定——变量名的第一个字母是小写的,只有后续单词的第一个字母是大写的,例如testGears——请参见。您可能希望将bub复数化,并给它一个更具描述性的名称。这不仅有助于那些试图使用lp,但对你自己来说,还有几个月的时间-需要解决的问题更少。你是否尝试过使用调试器单步执行代码和/或插入带有变量值的频繁打印语句?我认为,通过这种方式,你会学到更多,然后尝试从堆栈溢出中获得答案。你尝试过使用调试器吗?设置一些断点在你的代码中,并逐步进行,看看它到底做了什么。对我来说,不用看太长时间,它看起来好像在if和else中都设置为false,所以它从来没有完成过?@jeff_kile伟人思想相似!:我试着调试它,我发现它没有交换两个数字,而是开始吐出一个数字,所以如果我开始w对于一个由六个数字组成的随机链,它最终将成为一个由六个以上的数字组成的链,这些数字要么具有相同的值,要么具有不同的值,并且多次出现。我尝试过,但它所做的只是java告诉我它导致了“不精确”是的。我有那个代码,一开始几乎完全正确,但它就是不工作。代码看起来不错,但就是不工作。
 public static void main(String[] args) {


   int Bub[] = new int[6];
    Random randy = new Random();
    boolean Done = false;
    for (int x=0; x<6; x++)
    {
        Bub[x] = randy.nextInt(100);
        System.out.println (Bub[x]);
    }
        System.out.println ("This is the original array");
        while ( ! Done)
        {

            for (int x = 0; x<Bub.length-1; x++)
            {
            if(Bub[x+1] > Bub[x])
            {
                int temp = Bub[x];
                Bub[x] = Bub[x+1];
                Bub[x+1]=temp ;
                Done = false;
            }
            else
            {
                Done = false;
            }

        }
        for(int x = 0; x<6; x++)
        {
            System.out.print(Bub[x]+" ");
        }
         Done = true;
    }


}