演算法 筆記1 時間複雜度計算

2022-03-29 16:21:32 字數 1000 閱讀 2299

評價乙個演算法的優劣應該從三個方面判斷

1.時間複雜度 : 執行演算法所耗費的時間,即時間複雜度

2.空間複雜度 : 執行演算法所耗費的儲存空間,主要是輔助空間

3.可讀性和可操作性 : 演算法應當易於理解,易於程式設計,易於除錯等

時間複雜度

一般情況下,將演算法所要求求解問題的輸入量稱為問題的規模,並用乙個正整數n來表示

t(n)就是該演算法的時間耗費,他是該演算法所求問題規模n的函式

演算法中基本操作重複執行的次數時問題規模n的某個函式f(n)

演算法的時間量度記為: t(n) = o(f(n))

時間複雜度的計算

假如將演算法中基本操作的重複執行次數看成是問題規模n的某個函式f(n),演算法的漸進時間複雜度記作: t(n) = o(f(n))。它表示隨問題規模n的增大。演算法執行的增長率和f(n)的增長率相同,其中f(n)一般為演算法中頻率最大的語句的頻率。

在分析演算法時,往往對演算法的時間複雜度和漸進時間複雜度不予區分,而經常是將漸進時間複雜度t(n) = o(f(n)) 簡稱為時間複雜度。

1.在難精確計算基本操作執行次數(或語句頻度)的情況下,只需要求出它關於n的增長率或階即可。

2.如果乙個演算法的執行時間是乙個與問題規模n無關的常熟,即使是乙個較大的常數,該演算法的時間複雜度都為常熟階,記作t(n) = o(1) 

常見的時間複雜度按數量級遞增排列

常數階 o(1)

對數階 o(log2n)

線性階 o(n)

線性對數階 o(nlog2n)

平方階 o(n^2)

立方階 o(n^3)

..k次方階 o(n^k)

指數階 o(2^n)

階乘階 o(n!)

空間複雜度

類似於時間複雜度,乙個演算法的空間複雜度 s(n) 定義為該演算法所耗費的儲存空間

空間複雜度的計算

1.儲存空間本身所占用的儲存空間

2.演算法的輸入輸出資料所占用的儲存空間

3.演算法在執行過程中臨時占用的儲存空間

1 時間複雜度

演算法的計算成本涵蓋許多方面,為確定計算成本的度量標準,我們不妨從計算速度這一重要因素入手。但是這一問題並不是容易直接上手回答,原因在於,運算時間是由許多因素綜合作用而決定的。即使是同一演算法,對於不同的輸入所需的運算時間並不相同。問題規模往往是決定計算成本的主要因素。一般的,問題規模越相近,相應的...

演算法效率 1 時間複雜度 2 空間複雜度。

3 空間複雜度 1.演算法效率 演算法效率分析分為兩種 第一種是時間效率,第二種是空間效率。時間效率被稱為時間複雜度,而空間效率被稱作空間複雜度。時間複雜度主要衡量的是乙個演算法的執行速度,而空間複雜度主要衡量乙個演算法所需要的額外空間,在計算機發展的早期,計算機的儲存容量很小。所以對空間複雜度很是...

演算法01 時間複雜度

演算法,通俗來說,就是被設計出來用於解決某個或某類問題,具有一定通用性的計算流程和方法。解決某個問題,通常有不止一種演算法。評價乙個演算法的優劣,從3個方面進行考察 時間複雜度 額外空間複雜度 常數項時間 通常用最壞時間複雜度 大寫o 來表示乙個演算法的時間複雜度。通常估計乙個演算法的時間複雜度是這...