排序的方法有很多種,今天來寫一下Insertion Sort和Merge Sort的效率問題。
要討論兩種排序法的效率問題,首先我們得先假定有一部計算機虐拓,這臺計算機做一些基本操作(+ - * / % & | ! ...)的時間是固定的。為了比較兩者的效率我們還必須再假定排序時間最長傲武。
n個數(shù)的插入排序的總時間即是把每一個數(shù)排序的時間加起來蓉驹,而每一個數(shù)都和前面的數(shù)進行對比城榛。
T(n) = C1∑tj = C1 * (1+2+3+ ... + n-1) ≈ C1n2/2
T(n) : n個數(shù)進行插入排序的總時間
∑tj :第j個數(shù)進行排序的總時間n個數(shù)的歸并排序中每一層的對比次數(shù)是n,一共有l(wèi)og2n層态兴。
T(n) = C2nlog2n
T(n) : n個數(shù)進行歸并排序的總時間
由上可知狠持,在大量數(shù)據(jù)的情況下,歸并排序的效率會優(yōu)于插入排序瞻润。
由于筆者知識有限喘垂,如有錯誤,歡迎指出绍撞。