Thinker
2 years ago @Edit 2 years ago
剛剛教了 Junior Programmer 演算法第一課, bubble sorting.

一時興趣, 白板上垂直寫了一串數列, 請他用交換位置的方式排序. 他瞬間就解了.

然後再限制他一次只能看兩個數字, 而且無法記憶看過的數字的情況下(或者數列長達幾萬個數字), 問他要怎麼排列. 當然如預期的卡在那邊不會排.

接下來就是請他從頭掃到尾, 比較相鄰數字, 把較小的數字交換到前面. 掃個幾輪之後, 數字都排好了. 這就叫 bubble sorting. 打完收工.

較小的數字就是比較輕的氣泡, 我們不斷讓氣泡往上浮, 所以叫 bubble sorting.
latest #7
Thinker
2 years ago
最後加碼, 請問最糟的狀況, 要掃幾輪才能排好? n - 1 輪, 最差的狀況是最小的數子在數列的最後面, 每次浮上來一個位置, 所以要 n - 1 輪才會浮到上, 其它數字要往上浮或往下沈所需要輪次不會比它大, 所以這是最差的狀況.
Thinker
2 years ago
感覺基礎的演算法還是可以很歡樂的完成
爽叮噹
2 years ago
六歲?
立即下載
Thinker
2 years ago
對, 六歲 Junior Programming. 跳舞的方式很適合小朋友完.
Thinker
2 years ago
我覺得困難點在於要先讓小朋友了解電腦的限制. 例如, 為什麼不能直接找到最小的交換到前面就好? 把電腦 (CPU) 一次只能看到有限幾個資料 (instruction 的 operand) 的觀念傳達給小朋友, 而演算法要基於這個限制. 其實人腦也是一次能處理有限的資料.
爽叮噹
2 years ago
這對老師比較挑戰,讓我學習一下,感謝
back to top