算法的定義及特性:
(1)有窮性:一個算法必須總是執行有窮步后結束,且每一步都必須在有窮時間內完成.
(2)確定性.
(3)可行性.
(4)輸入:可以有0個或多個輸入.
(5)輸出:一個或多個輸出.
評價算法優劣的基本標準:
(1)正確性
(2)可讀性
(3)健壯性
(4)高效性
算法的時間復雜度:
1.算法的執行時間和語句的頻度
一個算法的執行時間大致上等于其所有的語句執行時間的總和,而語句的執行時間則為該語句的重復執行的次數和執行一次所需時間的乘積.
2.問題規模和算法的時間復雜度
算法求解問題的輸入量成為問題的規模,一般用n表示.
一個算法的時間復雜度是該算法的執行時間,記作T(n),T(n)是該算法所求解問題規模n的函數.當問題的規模n趨向無窮大時,T(n)的數量級稱為算法的漸進時間復雜度,記作:
T(n) = O(f(n))
算法的空間復雜度:
算法的存儲需求.它也是問題規模n的函數,記作:
S(n) = O(f(n))