冒泡排序可视化(重绘错误)

时间:2017-11-22 15:55:56

标签: java algorithm sorting user-interface

Thread one = new Thread(){
    public void run(){
        while(true){
            for (int m=listlen-1;m>=1;m--){
                flag=0;

                for (int n=0;n<m;n++){
                    if (a[n+1]<a[n]){
                        temp=a[n+1];
                        repaint();
                        a[n+1]=a[n];
                        repaint();
                        a[n]=temp;
                        repaint();
                        flag=1;
                    }
                }

                if (flag==0){
                    m=0;
                }
            }
            try 
            {
                Thread.sleep (100); 

            } 
            catch (InterruptedException ex) 
            {
            }
        }
    }
};
one.start();

Stack Overflow的朋友们,我偶然发现了我的代码中存在的一个问题,我有一定难度试图解决这个问题。我正在创建一个GUI,显示对象,因为它们按此冒泡排序进行排序。然而,我的代码目前完成的是显示完成的列表,然后显示它,
我认为这是我的问题,但我还没能解决它。

1 个答案:

答案 0 :(得分:1)

您正在外部Thread.sleep(100)循环之外等待(for),因此在排序完成后

相反,您应该将等待的放在<{1}}循环的正文中,或者甚至可以在每次for来电之前。

repaint()