2017-06-04 45 views
1

我给出这样一个问题:设置递推关系

Algorithm Mystery1(A[0...n-1]) 
//Input: An array A[0...n-1] of n real numbers 
if (n = 1) return A[0] 
else temp = Mystery1(A[0...n-2]) 
    if temp <= A[n - 1] return temp 
    else return A[n - 1] 

(一)这是什么算法计算?
(b)设置并解决执行算法的基本操作次数 的递归关系。对于(a)部分我知道这个算法计算数组中最小的元素。对于(b)部分,我相信基本操作是一个比较,因为它会进行最多的次数,但我无法弄清楚如何设置递归关系。
我明白如何解决递归关系,我只需要帮助建立问题。

回答

0

复发表达应该是:

T[n] = T[n-1] + O(1) 

计算上述表达式的时间复杂度出来是O(n)中。

+0

O(1)从哪里来? – Daoud

+0

O(1)用于比较: 如果temp <= A [n-1]返回温度 否则返回A [n-1] –