21. 給定下列的函數,請依照函數的增長速度找出增長速度最快和增長速度最慢的函數。
,(n -2) !, nlog(n) , log(n!) ,
, 0.041n3 , √n
(A) 最大
,最小 √n
(B) 最大
,最小 nlog(n)
(C) 最大 log(n!) ,最小 0.041n3
(D) 最大(n -2) !,最小
,(n -2) !, nlog(n) , log(n!) ,
, 0.041n3 , √n (A) 最大
,最小 √n (B) 最大
,最小 nlog(n) (C) 最大 log(n!) ,最小 0.041n3
(D) 最大(n -2) !,最小

答案:登入後查看
統計: A(16), B(26), C(4), D(44), E(0) #2706363
統計: A(16), B(26), C(4), D(44), E(0) #2706363
詳解 (共 1 筆)
#5757539
首先將各個時間複雜度函數作化簡,使其方便做比較。
- O(n17)
- O(log10 n)
- O(0.041n3) = O(n3)
- O( (n-2)! ) ≈ O((n/e)n-2)) (因爲 n! ≈ sqrt(2πn) * (n/e)n )
- O( n log n )
- O( log(n!) ) ≈ O(log (n^n)) ≈ O(n log n)
- O(25n) = O(2n)
- O( sqrt(n) ) = O(n0.5)
其中 O( (n-2)! ) 及 O(25n) 化簡後,可看出兩者均遠大於其他複雜度函數;但兩者間依然難以一眼看出勝負(當然,若直接判斷其sqrt(n)*nn特性可知前者必大於後者),因此可用遞進方式探討:
- O( (n-2)! ) : 當 n 提升 1 時,複雜度函數提升 n - 1 倍
- O(25n):當 n 提升 1 時,提升 25 倍,即 32 倍
當 n > 33 後, O( (n-2)! ) > O(25n) 恆成立。
O(log10 n) < O( sqrt(n) ) < O(n log n) < O(log (n!)) < O(n17) < O(0.041n3) < O(25n) < O((n-2)!)
0
0