資料結構 時間 空間複雜度

2021-08-08 08:18:53 字數 748 閱讀 6744

1、演算法是指令的有窮序列。

5個特徵:有窮性,確定性,可行性,輸入,輸出。

4個要求:正確性,可讀性,健壯性,效率與低儲存量。

2、漸進時間複雜度

t(n)=o(f(n))

漸進時間複雜度衡量的是乙個演算法基本操作執行次數的數量級,而不是單純地比較程式執行時間的長短。其真實意義應該是:是如果問題規模(n)趨向於無窮大,比較演算法執行時間長短。因此,計算t(n),f(n)的係數是不起作用的,也不必比較單級基本操作執行次數的多少。

因此,漸進時間複雜度是乙個理想執行時間的衡量,而不是乙個具體執行時間的衡量。o的具體意義是:是用於描述函式漸進行為的數學符號。也就是說,o其實是使用另外乙個函式來描述本來函式的漸進上界,這樣可以簡化問題。其意義類似於數學中的等價無窮小的概念。

因此,有定理:如果f(n)是乙個多項式,最高次項的指數為m,那麼其漸進時間複雜度是t(n)=o(n^m)。

常見漸進時間複雜度的比較:o(log2 n)3、漸進空間複雜度

漸進空間複雜度不是衡量所有程式占用空間的大小,而是程式臨時占用儲存空間大小的度量。也就是說,計算的一般只有演算法本身所佔的儲存空間,演算法輸入輸出所佔的空間以及演算法臨時占用的空間。

有的演算法臨時占用的空間是不隨問題規模的大小而改變的,我們稱其為「就地」進行的演算法,是節省儲存的演算法。而有的演算法所占用的空間隨問題規模(n)的增大而增大,就需要使用o(f(n))的方式來衡量,才稱為漸進空間複雜度,很多遞迴演算法都屬於這種演算法。

資料結構 時間複雜度 空間複雜度

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

資料結構 時間,空間複雜度

幾個概念 演算法的複雜度 演算法的時間複雜度和演算法的空間複雜度 時間複雜度 實際上就是乙個函式,該函式計算的是執行基本操的次數 演算法存在最好,平均,最壞情況 空間複雜度 函式中建立個數關於問題規模函式表示式。時間複雜度與空間複雜度一般用o的漸進表示法表示。1 void test int n 總執...

資料結構 時間 空間複雜度

2020 9 17 時間複雜度指演算法中基本運算的頻度,即某條語句在演算法中被重複執行的次數。例如 i i 2表示2的 i 次方小於等於n 方法 找出主體語句 即while或for語句 中與t n 成正比的迴圈變數,得到執行次數t,小於等於n 遞迴程式 t n 1 t n 1 n 1 t 1 t n...