複雜度big-Oh O的定義為:f(n) = O(g(n)) 若且唯若存在一實數c>0 和一整數n0>0,使
得對所有整數n≧n0,f(n) ≦ cg(n)皆成立。假設有如下的程式:
1. Procedure Sum(A, n)
2. sum = 0;
3. i = 0;
4. while(i< n) {
5. sum Å sum + A[i];
6. i = i+1; }
7. return sum;
設敘述2 執行一次需1 個單位時間,敘述3 執行一次需1 個單位時間,敘述4 執行
一次需2 個單位時間,敘述5 執行一次需3 個單位時間,敘述6 執行一次需2 個單
位時間,敘述7 執行一次需1 個單位時間。
對一個含n 個元素的陣列A,執行呼叫Sum(A, n)需要花多少個單位時間?(註:
只需計算敘述2-7 所花的時間即可。)(5 分)
此程式之時間複雜度(time complexity)為何?以big-Oh 表示之,並請用上述的
定義證明答案的正確性。(註:無證明者此小題不給分。)(10 分)
若A 含有八個整數 60, 5, 25, 20, 35, 10, 15, 85,請問呼叫Sum(A, 8)的回傳值為何?
(5 分)