- 如何評斷演算法表現
- 會受機器等其他因素影響
- 計算執行時間
- 執行的數量
- 相關指標
- Big-O
- f(n) 屬於 O(g(n)) f(n) upper bound 不會超過 big O
- 指數為n總是比多項式為n來的大 ex.n100次方 屬於(=) O(2n次方) computer science在這裡常把屬於寫成=
- 只在意n極大時的是否能bound住
- 不在意n小的時候的表現? n如何算小該如何定義? n很大的時候Big-O仍然比f(n)表現好嗎?
- Big-Omega
- f(n) 屬於 O(g(n)) f(n) lower bound 不會超過 big Omega
- Big-Theta
- f(n)既是Big-O又是Big-Omega
- Big-O
- 主要先抓三種情境 best、worst、average
- 因為表現會被輸入資料影響所以才需區分情境
- 分析通常最重視 average 有時為了預期最壞的情況會注意worst比較少注意 best的情境
- 演算法主要issue
- 運算結果正確
- 效能
- loop須注意三個屬性
- precoditions
- 進入前的狀況
- loop invariants
- 在loop中不會改變
- Termination condition
- 最後停止loop的條件
2017年9月9日 星期六
[公開課閒聊] 計算機概論第十一講 Algorithm - 台大 于天立
Ped隨手摘
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言