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];
Bub[x+1] = temp;
System.out.println ("Number "+Bub[x]+ " and " +Bub[x+1]+ " have been switched");
}
}
for(int x = 0; x < Bub.length; x++)
{
System.out.println(Bub[x]);
}
Done = true;
}
}
}
我的泡泡排序按升序排列,但只排序一次。它似乎工作正常,但我不能確定是什麼讓它不循環。它將一次遍歷數字序列,但在第一次初始檢查後不會繼續排序。有人能幫助我循環,直到整個序列有序嗎?好吧,我想我可能已經知道了。我擺脫了Done = true,而是在排序算法之後立即添加了Done = false。它現在似乎工作得很好,但如果有人發現錯誤,請不要猶豫指出!泡泡排序每隔一個數字換一次,不管數值如何
由於if條件:'Bub [x + 1]> Bub [x]',它並不交換所有內容。它會將較大的元素排序到數組的開頭。此外,它不是一個完整的排序,因爲它只在數組上循環一次。 – Brigham
'while'循環沒有完成任何事情。 –
請遵循java命名約定。 「完成」應該是「完成」,「Bub」應該是「bub」。 –