#演算法的時間複雜度
##度量乙個程式的執行時間的兩種方法:
事後統計的方法
這種方法可行,但是有兩個問題:一是要想對設計的演算法的執行效能進行測評,需要實際執行該程式;二是所得時間的統計量依賴於計算機的硬體、軟體等環境因素,這種方式,要在同一臺計算機的相同狀態下執行,才能比較哪個演算法速度更快。
事前估算的方法
通過分析某個演算法的時間複雜度來判斷哪個演算法更優
##時間頻度
乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它的花費時間就多,乙個演算法中的語句執行次數稱為語句頻度或時間頻度,記為t(n)。
##時間複雜度
一般情況下,演算法中的基本操作語句的重複執行次數是問題規模n的某個函式,用t(n)表示,f(n)是t(n)的同數量級函式,即t(n)=o(f(n)),稱o(f(n))為演算法的漸進時間複雜度,簡稱時間複雜度;
t(n)不同,?時間複雜度可能相同;
計算時間複雜度的方法:
用常數1代替執行時間中的所有加法常數;
修改後的執行次數函式中,值保留最高端項;
去除最高端項的係數。
##常見的時間複雜度
常數階、對數階、線性階、線性對數階、平方階、立方階、k次方階、指數階
##平均時間複雜度和最壞時間複雜度
演算法時間複雜度空間複雜度
演算法 是解決某一類問題的通法,即一系列清晰無歧義的計算指令。每個演算法只能解決具有特定特徵的一類問題,但乙個問題可由多個演算法解決。乙個演算法應該有以下五個方面的特性 比較演算法的優劣我們從兩個維度去進行考量 時間 空間 時間複雜度,空間複雜度 找出基本語句 演算法中執行次數最多的那條語句就是基本...
演算法 時間複雜度 空間複雜度
1 if i 1 2 a 1 result 3 4 result n 2 result 1000 1000 3 array.push a array.pop 4 map.set 1,1 map.get 1,1 在計算複雜度的時候,o 1 一般會被忽略。1 for let i 0 i n i 2 wh...
演算法的時間複雜度 空間複雜度
時間複雜度和空間複雜度是度量演算法效率的常用指標 事後統計,不常用 事前統計影響因素 演算法策略 問題規模 程式語言 質量 機器執行指令的速度 撇開軟硬體的影響,演算法執行工作量的大小只依賴於問題的規模 通常用整數n表示 乙個演算法是由控制結構 順序,分支,迴圈三種 和原操作 指固有資料型別的操作 ...