1. 程式人生 > >【?】資料結構/演算法中一些常見的數學符號

【?】資料結構/演算法中一些常見的數學符號

    求和符號,其結構如下 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倍)。例:歸併排序