如何找到递归二进制搜索的运行时间?

时间:2014-01-23 18:43:44

标签: algorithm runtime big-o procedure

对于以下每个程序,让T(n)为运行时间。求T(n)的阶数(即找到f(n)使得T(n)∈(f(n))。

Procedure BinarySearch(table T [a . . . b], int k):
 if a > b then
  return -1
 end if
 middle ← ⌊(a + b)/2⌋
 if T [middle] = k then
  return middle
 end if
 if k < T [middle] then
  return BinarySearch(T [a . . .middle], k)
 else
  return BinarySearch(T [middle . . . b], k)
 end if

我知道如何查找简单函数的运行时间,但由于这包括递归调用,所以我遇到了麻烦。

1 个答案:

答案 0 :(得分:0)

This link(页面底部)描述了一种解决二进制搜索算法递归关系的非常清晰的方法。