我們在學習演算法的時候總是需要計算時間複雜度,並會涉及到級數的情況直接得出時間複雜度的估算。
級數是指將數列的項依次用加號連線起來的函式。
首先什麼是算數級數和幾何級數?
幾何級數:從第二項起,每一項是前一項的多少次方。
算術級數:從第二項起,每一項均由前一項加乙個常數所構成的序列。
時間複雜度
算數級數:與末項平方同階
t(n) = 1+2+…+n = n(n+1)/2 = o(n2)
幾何級數(a > 1):與末項同階
ta(n) = a0 + a1 + … + an = (an+1 -1)/(a - 1) = o(an)
1 + 2 + 4 + … + 2n = 2n+1 - 1 = o(2n+1) = o(2n)
更多級數的時間複雜度請看
->
2617 小Biu過生日 (調和級數時間複雜度)
今天是小biu的生日,為了慶祝自己的生日,小biu邀請n個朋友來玩乙個遊戲,小biu給每個朋友一張帶著數字的紙條,第i個朋友編號為i,紙條上的數字為aiai。小biu讓n個朋友坐成乙個圈,除了1號與n號朋友外,i號朋友與i 1號朋友和i 1號 朋友相鄰,n號朋友與1號朋友相鄰。之後每個朋友輪流走上一...
時間複雜度和空間複雜度
同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能...
時間複雜度和空間複雜度
1 時間複雜度 1 時間頻度乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多...