為了解決理解與執行這兩者之間的矛盾人們常常使用一種稱為偽碼語言的描述方法來進行算法描述偽碼語言介於高級程序設計語言和自然語言之間它忽略高級程序設計語言中一些嚴格的語法規則與描述細節因此它比程序設計語言更容易描述和被人理解而比自然語言更接近程序設計語言它雖然不能直接執行但很容易被轉換成高級語言
算法性能分析與度量
我們可以從一個算法的時間復雜度與空間復雜度來評價算法的優劣
當我們將一個算法轉換成程序並在計算機上執行時其運行所需要的時間取決於下列因素
⑴硬件的速度例如使用機還是使用機
⑵書寫程序的語言實現語言的級別越高其執行效率就越低
⑶編譯程序所生成目標代碼的質量對於代碼優化較好的編譯程序其所生成的程序質量較高
⑷問題的規模例如求以內的素數與求以內的素數其執行時間必然是不同的
顯然在各種因素都不能確定的情況下很難比較出算法的執行時間也就是說使用執行算法的絕對時間來衡量算法的效率是不合適的為此可以將上述各種與計算機相關的軟硬件因素都確定下來這樣一個特定算法的運行工作量的大小就只依賴於問題的規模(通常用正整數n表示)或者說它是問題規模的函數
⒈時間復雜度
一個程序的時間復雜度(Time complexity)是指程序運行從開始到結束所需要的時間
[] [] [] [] []
From:http://tw.wingwit.com/Article/program/sjjg/201311/23945.html