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++)
{
for(int j = x + 1; j < Bub.length; j++)
{
if(Bub[x] >Bub[j])
{
int temp = Bub[x];
Bub[x] = Bub[j];
Bub[j] = temp;
}
}
}
for(int x = 0; x < Bub.length; x++)
{
System.out.println(Bub[x]);
}
}
}
}
所以我的Bubble排序工作得很好。至少我認爲它的確如此。但我希望看到每個交換,我不知道如何編碼。因此,不是隻打印出原始數字和有序數字,有沒有辦法看到它們之間的所有數字順序?因此,在查看最終有序順序之前的數字順序之後,我發現數字並未切換他們想要的方式。它不需要前兩個數字,如果需要的話交換它們,然後移動第二對數字。相反,它似乎跳了起來,但仍然給出了正確的有序對。有人能夠弄清楚是什麼原因造成的?如何在泡泡分類中看到每個交換(我想明白了!)
只需附加調試器並監視變量/數組。要「打印」中間的「交換狀態」,您需要在實際的排序循環內(即交換髮生處)打印*。 (int xe = 0; xe <6; xe ++) – user2864740
好吧,我添加了。 } – Sarah
但它給了我一個很長的水平鏈中的數字,有沒有辦法解決這個問題? – Sarah