0
我從維基百科這個僞代碼:氣泡分類的這些僞代碼如何工作?
procedure bubbleSort(A : list of sortable items)
n = length(A)
repeat
swapped = false
for i = 1 to n-1 inclusive do
/* if this pair is out of order */
if A[i-1] > A[i] then
/* swap them and remember something changed */
swap(A[i-1], A[i])
swapped = true
end if
end for
until not swapped
end procedure
這從a book(計算機科學的命名原則)
BubbleSort(list)
length <-- lenght of list
do {
swapped_pair <-- false
index <-- 1
while index <= length - 1 {
if list[index] > list[index + 1] {
swap(list[index], list[index + 1])
swapped_pair = true
index <-- index + 1
}
}
} while(swapped = true)
end
我不知道哪個是更好的僞代碼。
我不明白的部分是swapped_pair < - 虛假部分和最後一行。
在第4行寫入swapped=false
或swapped_pair <-- false
。
爲什麼它在開始時設置爲false?如果它沒有設置爲false,會發生什麼?
而最後一行,在維基百科這是寫:
end if
end for
until not swapped
end procedure
以及從書中的僞它寫成:
while(swapped = true)
是什麼,這些最後幾行是什麼意思?
有兩個循環。你從哪裏得到這樣的想法,即它只是一次通過清單? –
此外,它聽起來像您無法理解僞代碼的語法,而不是算法。我建議你閱讀本書介紹語法的章節。 –
不好意思,我真的沒有這個想法(我會編輯它)。但我不明白最後的陳述意味着什麼。如果沒有最後的陳述,如果我沒有錯,那將通過列表一次。 – Coder88