編程基礎概念:算法及性能分析

===》點我返回目錄《===

算法是計算機上的一系列操作,每個算法都需要佔用計算機的計算資源,我們要衡量算法的時間複雜度和空間佔用情況。

時間複雜度,我們一般用大O表示,我們會看三個指標:最壞情況下的時間複雜度;平均時間複雜度;最好情況下時間複雜度。

常數階:O(1)

對數階:O(log2n)

線性階:O(n)

線性對數階:O(nlog2n)

平方階:O(n²)

立方階:O(n³)

指數階:O(2^n)

階乘:O(n!)

分析程序代碼,記錄每一個操作,這樣做不太可行,工作量太大,所以一般只用衡量執行頻度最高的語句所消耗的時間,得出一個數量級就可以了。典型的是分析循環遞歸批量移動位置等操作。

空間複雜度是指算法爲了運行所需要的額外空間。常見的有:

常數階 O(1):冒泡排序,插入排序,選擇排序,希爾排序,堆排序。

線性階 O(n):二路歸併排序。

對數階 O(log2n):快速排序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章