資料結構與演算法 演算法與時間複雜度

2022-02-01 19:19:25 字數 841 閱讀 8033

演算法的五大特性 :

1. 輸入, 0 個或多個

2. 輸入 1 個或多個

3. 有窮性

4. 確定性

5. 可行性

如果乙個演算法執行效率(步驟) 標記成 t(n) = n^3 * 2  ,那麼這個2 可以看作乙個常數 k ,就可以寫成 t(n) = n^3 * k 

可以看出,如果改變常數k的值,並不會影響 t(n) 這個函式在座標軸的走勢,所以可以忽略掉這個常數,把它表示成 g(n) = n^3 

那麼 g(n) = n^3 就是 t(n) = n^3 * k 的 漸進函式 可以記作 t(n) = o(g(n)) 那麼這個式子 就是這個演算法的時間複雜度

演算法完成最少需要多少基本操作,叫最優時間複雜度

演算法完成平均需要多少基本操作,叫平均時間複雜度

演算法完成最多需要多少基本操作,叫最壞時間複雜度

平時所說的時間複雜度,即最壞時間複雜度

時間複雜度基本計算規則:

1. 基本操作,基本語句,時間複雜度為 o(1)

2. 順序結構, 時間複雜度按 加法 計算

3. 迴圈結構, 時間複雜度按 乘法 計算

4. 分支結構, 取最大值 (即分支裡面時間複雜度最壞的那條)

5. 判斷演算法效率時,往往只需要關注運算元量的最高次項

6. 一般分析時所稱的時間複雜度都是最壞時間複雜度

資料結構與演算法 時間複雜度與空間複雜度

解決乙個問題的方法可能有很多,但能稱得上演算法的,首先它必須能徹底解決這個問題 稱為準確性 且根據其編寫出的程式在任何情況下都不能崩潰 稱為健壯性 程式和演算法是完全不同的概念。演算法是解決某個問題的想法 思路 而程式是在根據演算法編寫出來的真正可以執行的 例如,要依次輸出一維陣列中的資料元素的值,...

演算法與資料結構 時間複雜度

複雜度是衡量乙個演算法效率高低的乙個重要的因素,一般分為時間複雜度和空間複雜度。空間複雜度,一般在排序等 抽象資料型別的運算和物理實現 有關。本篇主要介紹時間複雜度的一些概念。我們在ram模型 1 記憶體無限大 2 基本運算o 1 下面考慮接下來的內容。準確的說,演算法的複雜性是執行演算法所需要的計...

資料結構與演算法(演算法特點,時間複雜度)

例題 如果 a b c 1000,且 a2 b2 c 2 a,b,c 為自然數 如何求出所有a b c可能的組合?列舉法 import time start time time.time for a in range 0 1001 for b in range 0 1001 for c in ran...