算法導論(1):基礎

什麼是算法

算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令
算法代表着用系統的方法描述解決問題的策略機制。
也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。
如果一個算法有缺陷,或不適合於某個問題,執行這個算法將不會解決這個問題。
不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間複雜度與時間複雜度來衡量。
算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和(可能爲空的)初始輸入開始,經過一系列有限而清晰定義的狀態,最終產生輸出並停止於一個終態。
一個狀態到另一個狀態的轉移不一定是確定的。隨機化算法在內的一些算法,包含了一些隨機輸入。

算法的特徵

有窮性(Finiteness)
算法的有窮性是指算法必須能在執行有限個步驟之後終止;

確切性(Definiteness)
算法的每一步驟必須有確切的定義;

輸入項(Input)
一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定出了初始條件;

輸出項(Output)
一個算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的算法是毫無意義的;

可行性(Effectiveness)
算法中執行的任何計算步驟都是可以被分解爲基本的可執行的操作步驟,即每個計算步驟都可以在有限時間內完成(也稱之爲有效性)。

算法的作用

計算機也許是快的,但不是無限快。
存儲器也許是廉價的,但不是免費的。
所以時間和空間都是有限資源,你應該學會明智地使用這些資源, 而一個高速有效的算法將幫助你這樣使用這些資源

漸進記號

漸進記號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章