演算法複雜度的含義

2021-10-24 15:36:20 字數 786 閱讀 3264

o(1)

輸入資料增大多少倍,耗時/耗空間都不變。

雜湊演算法就是典型的 o(1) 時間複雜度,無論資料規模多大,都可以在一次計算後找到目標。

o(n)

資料量增大幾倍,耗時也增大幾倍

o(n^2)

資料量增大 n 倍時,耗時增大 n 的平方倍

o(logn)

當資料增大 n 倍時,耗時增大 logn 倍

例如:

1. 資料增大 256 倍時,耗時只增大 8 倍(每次排除一半,只需排除8次)

[256 / 2 = 128] 1次

[128 / 2 = 64] 2次

[64 / 2 = 32] 3次

[32 / 2 = 16] 4次

[16 / 2 = 8] 5次

[8 / 2 = 4] 6次

[4 / 2 = 2] 7次

[2 / 2 = 1] 8次

資料增大512倍時,耗時只增大16倍

(這裡的 log 是以2為底的,比如,當資料增大 256 倍時,耗時只增大 8 倍,是比線性還要低的時間複雜度)

二分查詢就是 o(logn) 的演算法,每找一次排除一半的可能,256 個資料中查詢只要找 8 次就可以找到目標

o(nlogn)

就是 n 乘以 logn,當資料增大 256 倍時,耗時增大256 × 8 = 2048倍。

當資料增大 512 倍時,耗時增大 512 × 16= 8192 倍。

演算法的複雜度 演算法的時間複雜度和空間複雜度

在一次筆試題目中,發現了自己對於演算法的時間複雜度問題上並沒有完全清晰這個概念和計算方法,故上網尋找到比較好的詳細介紹來學習。演算法的時間複雜度和空間複雜度合稱為演算法的複雜度。1.時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也...

演算法的複雜度 時間複雜度與空間複雜度

通常,對於乙個給定的演算法,我們要做 兩項分析。第一是從數學上證明演算法的正確性,這一步主要用到形式化證明的方法及相關推理模式,如迴圈不變式 數學歸納法等。而在證明演算法是正確的基礎上,第二步就是分析演算法的時間複雜度。演算法的時間複雜度反映了程式執行時間隨輸入規模增長而增長的量級,在很大程度上能很...

演算法複雜度 時間複雜度和空間複雜度

1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數...