1. 程式人生 > >資料結構和算法系列3--複雜度分析(下)

資料結構和算法系列3--複雜度分析(下)

複雜度分析的4個概念

1.最壞情況時間複雜度:程式碼在最理想情況下執行的時間複雜度。
2.最好情況時間複雜度:程式碼在最壞情況下執行的時間複雜度。
3.平均時間複雜度:用程式碼在所有情況下執行的次數的加權平均值表示。
4.均攤時間複雜度:在程式碼執行的所有複雜度情況中絕大部分是低級別的複雜度,個別情況是高級別複雜度且發生具有時序關係時,可以將個別高級別複雜度均攤到低級別複雜度上。基本上均攤結果就等於低級別複雜度。

為什麼要引入這4個概念?

1.同一段程式碼在不同情況下時間複雜度會出現量級差異,為了更全面,更準確的描述程式碼的時間複雜度,所以引入這4個概念。
2.程式碼複雜度在不同情況下出現量級差別時才需要區別這四種複雜度。大多數情況下,是不需要區別分析它們的

如何分析平均、均攤時間複雜度?

1.平均時間複雜度
程式碼在不同情況下複雜度出現量級差別,則用程式碼所有可能情況下執行次數的加權平均值表示。
2.均攤時間複雜度
兩個條件滿足時使用:1)程式碼在絕大多數情況下是低級別複雜度,只有極少數情況是高級別複雜度;2)低級別和高級別複雜度出現具有時序規律。均攤結果一般都等於低級別複雜度