【发布时间】:2017-10-21 20:40:25
【问题描述】:
我对线性搜索中的以下两种情况感到困惑。我这里先写线性搜索算法吧。
线性搜索的伪代码
输入:未排序的数组 A & 键
输出:索引 i 使得 A[i] = key
LinearSearch(A,low,high,key)
if high < low
return NOT_Found
if A[low] = key
return low
return LinearSearch(A,low+1,high,key)
本书大部分内容的复杂度为 O(n)。有什么区别
- 如果数组中存在键,则线性搜索的最佳运行时间 [Ans: O(1)]
- 如果数组中不存在键,则线性搜索的最佳运行时间 [Ans: O(n)]
是什么原因当key出现在数组中时,复杂度会降低到O(1)?非常感谢!
【问题讨论】:
标签: arrays algorithm time-complexity linear-search