0
的運行時間我想計算隨機二進制搜索以下僞代碼的預期運行時間,在那裏,而不是考慮的中點爲支點,選擇一個隨機點:預期隨機二進制搜索
BinarySearch(x, A, start, end)
if(start == end)
if(A[end] == x)
return end
else
return -1
else
mid = RANDOM(start, end)
if(A[mid] == x)
return mid
else if(A[mid] > x)
return BinarySearch(x, A, start, mid-1)
else
return BinarySearch(x, A, mid+1, end)
我看着this previous question,它具有以下內容:
T(n) = sum (T(r)*Pr(search space becomes r)) + O(1) = sum (T(r))/n + O(1)
這是如何獲得的?
sum(T(r)*Pr(search space becomes r))
而在最後一行計算,這是如何得到的?
T(n) = 1 + 1/2 + 1/3 + ... + 1/(n-1) = H(n-1) < H(n) = O(log n)