线性搜索的渐近符号不同

时间:2015-10-04 21:25:23

标签: algorithm

我以为我理解渐近符号,但在开始托马斯科尔曼的算法解锁之后,我对他的一个例子感到很困惑。他首先回顾了“更好的线性搜索”并得出结论:f(n)=Θ(n),最佳情况ω(1),最差情况O(n)

程序更好的线性搜索(A,n,x)

输入和输出:与LINEAR-SEARCH相同。

  1. 对于i = 1到n: A.如果A [i] = x,则返回i的值作为输出。
  2. 返回NOT-FOUND作为输出。
  3. 然后他继续讨论哨兵线性搜索:

    程序SENTINEL-LINEAR-SEARCH(A,n,x)

    输入和输出:与LINEAR-SEARCH相同。

    1. 将A [n]保存到y中,然后将x放入A [n]。
    2. 将i设为1。
    3. 当A [i]!= x时,请执行以下操作: A.增量i。
    4. 从y恢复A [n]。
    5. 如果我
    6. 否则,返回NOT-FOUND作为输出。
    7. 他得出结论,Better Linear Search和Sentinel Liner Search都具有等效的渐近符号:

      Θ(n)是最坏的情况 Θ(1)是最好的情况 在所有情况下都是O(n)

      他是不是只是在Better Linear Search中说最好的情况是ω(1),最坏的情况是O(n)?为什么他现在使用Θ来描述最佳和最坏的情况?

0 个答案:

没有答案