這是第一個解出的題目,剛開始寫程式沒有註解習慣。搭配原文看,才明白程式如何運作。回顧之餘順便寫註解並且優化,然後再做gif檔。
分四大步驟,然後再做補間動畫。
雖然有測資網站提供測試,但是自己寫測資也很重要。
聽過白箱和黑箱,但是還沒接觸過。
氣泡演算法,顧名思義數字會從底下往上浮出。
錯誤順序就像待在錯誤水壓層,所以氣泡會因為水壓上升或下沉,
回到他正確位置中。
每一輪要找剩餘數字中最大那一個,所以比的次數會遞減。
第一輪比四次,找到第一大。
第二輪剩四個數字,所以比三次就好。
中間可能提早排序好,但是程式是死的,所以會跑完全部。
n + (1 + n) / 2 X n + n
=n + 1/2n + 1/2n X n + n
=2n + 1/2n + 1/2n X n
故時間複雜度為O(n的二次方)
因為要計算總距離,用絕對值比較方便。
前面一直在講做動畫區,這邊更正為動圖區。
中間補間動畫還在思考作法,想找一個聰明辦法。
可惜沒有flash,不然輸出逐格動畫多方便。
不會打數學符號,在時間複雜度說明用了很醜算式。
之後會學習寫法,增加文章易讀性。
圖片比例過大,不知道Markdown
能不能控制大小。
不然就要去學批次檔製作,將圖片統一進行縮小。
明天先將欠缺技能學起來,再來製作動圖區。
感謝撥冗閱讀,有錯誤地方歡迎指教。