首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java中使用布尔值的气泡破裂。

在java中使用布尔值的气泡破裂。
EN

Stack Overflow用户
提问于 2014-02-08 00:08:21
回答 2查看 644关注 0票数 0
代码语言:javascript
复制
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]+" ");
            }
        }

    }
}

所以我的编程老师让我们用一个布尔值用java做一个泡泡排序。他的示例显示了带for循环的while循环中的代码。这段代码应该持续排序,直到数组中的数字从最少到最大。然而,我真的迷路了,我似乎不知道自己哪里出了问题。任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-08 00:20:34

问题在于你的切换算法。你要分配两次临时时间。

代码语言:javascript
复制
 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

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

代码语言:javascript
复制
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]);
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2014-02-08 00:23:46

这工作

代码语言:javascript
复制
 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;
    }


}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21640027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档