演算法複雜度:
複雜度計算出來後有什麼用?
估計程式能否在規定時間內處理題目指定規模的資料
acm有時間限制1s
「規模」的舉例
1.給n個數排序 規模:n
2.判斷字串p是否是字串t的子串 規模:串的長度|p|和|t|
3.判斷乙個整數是否屬於整數集合s 規模:|s| 要判斷多少次(查詢次數)
4.圖中某兩個點的最短路徑/求連通圖的最小生成樹 規模:頂點數 邊數
5.給乙個整數集合s,問是否存在s的乙個非空子集t,滿足t中所有元素的和為零 規模:|s|
演算法運算次算:
當代計算機1s內可做10^7左右次計算,配置好的機器可到k*10^7~10^8
在這個限制下時間複雜度一定的演算法存在能處理的規模上限
複雜度數量級
最大規模
複雜度數量級
最大規模
o(logn)
>>10^20
很大o(n^3)
100500
o(n^1/2)
10^12
10^14
o(n^4)
5050
o(n)
10^6
10^7
o(2^n)
2020
o(nlogn)
10^5
10^6
o(n!)910
o(n^2)
1000
2500
排序演算法及演算法複雜度
演算法 演算法是指令的有限集合,順序執行這些指令,可以完成特定的任務。演算法具有以下特性 1 輸入 從外界獲取零個或多個量 2 輸出 產生至少乙個量 3 確定性 每條指令清晰 無二義性 4 有限性 演算法對所有情形都能在執行有限步之後結束 5 有效性 每條指令都是可執行的 選擇排序 工作原理 在未排...
演算法 演算法複雜度
演算法通俗的來說就是解決一些問題方法和步驟,那麼衡量演算法的標準有如下 1.時間複雜度 時間複雜度也就是通常所說的演算法執行所需要耗費的時間,時間越短,演算法越好,當然也有解釋是程式要執行的次數,而不是程式執行的時間,因為有些機器效能高,程式執行的速度快,二有些機器效能一般執行就慢,所以這裡就不能用...
演算法競賽時間複雜度及空間複雜度
眾所周知 在演算法競賽以及有關電腦科學的諸多學科中,時間複雜度和空間複雜度是評判乙個演算法 程式的重要標準。一般使用o 來表示。同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。空間複雜度 space complexity...