凹逗工程師

成為一個更好的人

0%

Big O 分析演算法好壞

前言

同樣一個問題可以用不同的演算法解答,那我們要如何去區分當中的好與壞呢?
對於這樣的疑問有人提出了一種解答 - Big O.

Big O 表示法

分析演算法的優劣,通常是使用資源來評量,ex: CPU 佔用量、Memory 佔用量、磁碟、網路等等。
當說到 big o 時,一般考慮的就是 CPU (時間)佔用。在分析時很常會看到以下的函數:

符號 名稱
O(1) 常數型
O(log(n)) 對數型
O(log(n)c) 對數多項式型
O(n) 線性型
O(n^2) 二次型
O(n^c) 多項式型
O(c^n) 指數型

Big O 是用來描述演算法在輸入 n 個數時,總時間與 n 的關係。

常見排序: 1(常數) < log n < n < n log n < n^2 < 2^n < n!

歡迎關注我的其它發布渠道