一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式f(n),所以演算法的時間複雜度記做
t(n)=o(f(n))
表示問題規模n的增大,演算法執行時間的增長率和f(n)的增長率同。
大多數情況下基本操作的原操作應是最深層迴圈內的語句,它的執行次數和包含它的語句頻度相同。
由於演算法的時間複雜度考慮的只是對於問題規模n的增長率,所以在難以精確計算基本操作執行次數的情況下,我們只求出它關於n的增長率(也就是階)即可。
乙個程式在計算機上執行所費的時間通常取決於下面幾個因素:
1,演算法的策略。
2,問題的規模,例如10個數排序還是1000個數排序。
3,書寫程式的語言,對於同乙個演算法,實現語言越高階,執行效率越低。
4,編譯程式產生機器**的質量。
5,機器執行指令的速度。(也就是彙編速度)
關於演算法的時間複雜度問題的思考
一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式f n 所以演算法的時間複雜度記做 t n o f n 表示問題規模n的增大,演算法執行時間的增長率和f n 的增長率同。大多數情況下基本操作的原操作應是最深層迴圈內的語句,它的執行次數和包含它的語句頻度相同。由於演算法的時間複雜度考慮...
關於演算法的時間複雜度
2.時間複雜度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間...
演算法的時間複雜度和問題規模 演算法時間複雜度
在進行演算法分析時,語句總的執行次數 是關於問題規模 n 的函式,進而分析 隨 n 的變化情況並確定 的數量級。演算法的時間複雜度,也就是演算法的時間量度,記作 它表示隨問題規模 n 的增大,演算法執行時間的增長率和 的增長率相同,稱作演算法的漸近時間複雜度,簡稱時間複雜度。其中 是問題規模 n 的...