【?】資料結構/演算法中一些常見的數學符號
阿新 • • 發佈:2019-01-31
∑
求和符號,其結構如下
max
∑ 代數式
min式i的最低值,max是i的最大值。把i從最小值遞增到最大值,依次代入代數式,每一次代入代數式的值的和。
i=min
例:
n
∑2i 表示: 2*1+2*2+2*3+...+2*n
i=1
f(x)
例: y=x+1 可以寫作 f(x)=x+1
log
求對數符號 logaN 表示以a為底數N的對數(也可以理解為:a的幾次方=N) 例: log2 16 表示 2^i = 16 ,i值為 4 (i的值即為log2 16的值)
注: 有時底數是被省略的 例如:O(logN) 這種寫法側重於描述時間/空間 與 資料增長量的關係,底數並不重要。它的底數隨分治思想的複雜度而定,如果採用二分法,底數是2,三分法,底數則是3 時間複雜度 衡量演算法所需耗費的時間 空間複雜度 衡量算法佔用的儲存空間
O(1) 複雜度恆定,與資料量無關。例:雜湊演算法 O(N) 資料量增大n倍,耗時就增大n倍,例:遍歷 O(N^2) 資料量增大n倍,耗時就增大n*n倍,例:氣泡排序(對每個元素都需要掃描n次,故n個元素需要n*n次) O(logN) 以底數取2為例,當資料量增大n倍時,耗時就增大log2N倍(如資料量增大16倍,則耗時增大4倍;如果數量來增大128倍,則耗時增大7倍)例:二分查詢 O(nlogN) 以底數為2為例,當資料量增加n倍,時間複雜度增加 n*log2N倍 (如資料增大16倍,則耗時增大16*4倍)。例:歸併排序
求對數符號 logaN 表示以a為底數N的對數(也可以理解為:a的幾次方=N) 例: log2 16 表示 2^i = 16 ,i值為 4 (i的值即為log2
注: 有時底數是被省略的 例如:O(logN) 這種寫法側重於描述時間/空間 與 資料增長量的關係,底數並不重要。它的底數隨分治思想的複雜度而定,如果採用二分法,底數是2,三分法,底數則是3 時間複雜度 衡量演算法所需耗費的時間 空間複雜度 衡量算法佔用的儲存空間
O(1) 複雜度恆定,與資料量無關。例:雜湊演算法 O(N) 資料量增大n倍,耗時就增大n倍,例:遍歷 O(N^2) 資料量增大n倍,耗時就增大n*n倍,例:氣泡排序(對每個元素都需要掃描n次,故n個元素需要n*n次) O(logN) 以底數取2為例,當資料量增大n倍時,耗時就增大log2N倍(如資料量增大16倍,則耗時增大4倍;如果數量來增大128倍,則耗時增大7倍)例:二分查詢 O(nlogN) 以底數為2為例,當資料量增加n倍,時間複雜度增加 n*log2N倍 (如資料增大16倍,則耗時增大16*4倍)。例:歸併排序