L1 = [9,8,7,6,5,4,3,2,1]
L2 = [8,1,3,6, 9,7,4,2,5]泡泡排序:升序解釋V/S降序列出
L1
會導致bubblesort做更多的交換,我真的不明白什麼決定泡沫去做更多/更少的掉期。
L1 = [9,8,7,6,5,4,3,2,1]
L2 = [8,1,3,6, 9,7,4,2,5]泡泡排序:升序解釋V/S降序列出
L1
會導致bubblesort做更多的交換,我真的不明白什麼決定泡沫去做更多/更少的掉期。
是,L2會使Bubble-sort做更多的掉期。泡泡排序嚴重減慢turtles
(即在列表末尾附近的小數字)。 Rabbits
(即接近代碼開始處的大數字)快速交換並且無關緊要,而龜在緩存中向前移動一次,每次迭代一次。
這就是您在任何重型分揀代碼中幾乎從不使用bubblesort的原因。 Introsort和Cocktail Sort是泡沫排序的更好變體。
我不明白你爲什麼在這裏問這個問題,爲什麼你已經標記了這個問題瓦特/ python
(儘管是我看到擺在首位這一問題的唯一原因)。
感謝您的回覆。 – alicew 2012-04-23 18:17:52
@alicew,只是修正了一個重大錯誤(混淆了「兔子」和「海龜」),並增加了更多內容。 – 2012-04-23 18:20:13
家庭作業?自己做。你甚至可以編寫代碼來計算比較。 – Marcin 2012-04-23 17:57:15
爲什麼不運行它(無論是在電腦上,還是在紙上),並找出答案? – 2012-04-23 17:57:23
確定哪些輸入進行了最多互換的方法之一是對氣泡排序算法進行編碼,然後簡單計算互換髮生的次數。在氣泡排序結束時,您可以打印出這個數字並用它來比較不同的輸入 – JaredPar 2012-04-23 17:59:10