算法設計與分析【1】算法複雜度

算法複雜度

算法具有輸入輸出,有窮性,確定性,有限性;程序可以不滿足有限性

大小關係對比

O(c)<O(logN)<O(log^2N)<O(N)<O(N*logN) < O(N^2)<O(N^3)<O(2^N)<O(N!)<O(N^N)
在對比時,其實也可直接對N帶入具體值計算比較
在這裏插入圖片描述

化簡方法

1、用常數1取代運行時間中的所有加法常數C
2、保留最高階項
3、如果最高階項存在且不是1,去掉常數係數。比如5n^3我們取n^3,用大O表示結果

補充,有一些關於O的運算:
1、O(f+g)=O(f)+O(g)=O(max(f,g))
2、O(fg)=O(f)*O(g)
3、O(Cf(N))=O(f(N));C是正常數
4、f = O(f)

複雜度函數的基本推導過程

需要知道的公式:
在這裏插入圖片描述

主要的方法有(主要掌握紅色的方法):

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

遞歸樹的適用範圍是問題規模以等比縮減的情況.
把非函數項作爲根,把函數項作爲根的兒子
每層節點的值就是當前迭代的非函數項的值
遞歸樹的本質就是T(n)=樹所有節點之和

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

參考

課程PPT
mooc算法設計與分析

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