【 第四章 】
撲克牌教我演算法
對應的課綱主題:演算法
本章嘗試從 「程式」 到 「演算法」,讓大家試著去體驗 「運算思維」。前面說過,運算思維就是以電腦的執行邏輯脈絡來思考問題並解決問題!運算思維的訓練有很多好處,他可鍛鍊我們以清晰的步驟來處理解決生活周遭的問題與困難。當我們能清楚的描述步驟後,電腦就可以為我們代勞解決問題。你我可以不再是單純運用人力解決問題,或者是使用現成的軟體或演算法做既定的事情。當你精熟於運算思維時,你可以使用程式語言撰寫自己的應用程式,利用演算法來解決問題並同時享受創作的樂趣。電腦就如同一塊畫布一般有著無限的可能,而運算思維就是電腦資訊科學最好的入門磚,這也是我們想帶給你的樂
趣所在!⋯⋯
大符號O(Big-O)
大O符號(英語:Big O notation),又稱為漸進符號,是用於描述函式漸近行為的數學符號。更確切地說,它是用另一個(通常更簡單的)函式來描述一個函式數量級的漸近上界。在數學中,它一般用來刻畫被截斷的無窮級數尤其是漸近級數的剩餘項;在電腦科學中,它在分析演算法複雜性的方面非常有用。
網路資源
1. AppWorks School:
初學者學演算法|談什麼是演算法和時間複雜度
空間複雜度(Space Complexity)
網路資源
時間複雜度(Time complexity)
在電腦科學中,演算法的時間複雜度(Time complexity)是一個函式,它定性描述該演算法的執行時間。這是一個代表演算法輸入值的字串的長度的函式。時間複雜度常用大O符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,亦即考察輸入值大小趨近無窮時的情況。例如,如果一個演算法對於任何大小為 n (必須比 n0 大)的輸入,它至多需要 5n3 + 3n 的時間執行完畢,那麼它的漸近時間複雜度是 O(n3)。
網路資源
分析機(Analytical Engine)
網路資源
對數(Logarithm)
在數學中,對數是冪運算的逆運算。用日常語言說,即「以3為底81的對數是4」。 WiKi連結
網路資源
遞迴(Recursion)
在數學與電腦科學中,是指在函數的定義中使用函數自身的方法。遞迴一詞還較常用於描述以自相似方法重複事物的過程。例如,當兩面鏡子相互之間近似平行時,鏡中巢狀的圖像是以無限遞迴的形式出現的。也可以理解為自我複製的過程。 WiKi連結
網路資源
分而治(Divide-and-conquer algorithm)
網路資源