algorithm - 线性搜索的平均案例复杂度
问题描述
所有教程和维基百科都说平均情况的线性搜索的复杂度是n/2。我知道准确的答案是(n+1)/2,它来自公式(1+2+...+n)/n。
我的问题是,为什么消息来源说 n/2 而不是 (n+1)/2?他们没有错吗?
解决方案
由@PaulHankin 回答
维基百科说“如果每个元素被搜索的可能性相同,那么线性搜索的平均情况为 (n+1)/2 比较,但如果每个元素的搜索概率不同,则平均情况可能会受到影响。” 尽管在侧框中它说平均性能是 O(n/2)。因为 (n+1)/2 = O(n/2) = O(n)
由@Stef 回答
n/2 和 (n+1)/2 不仅仅是彼此的大哦。它们是渐近等价的。
推荐阅读
- python - 从扩展函数返回后使用自定义 Python 扩展的堆损坏 (0xC0000374)
- java - 尝试插入链接列表,但不能插入超过 2 个值
- reactjs - React App 无法在 OpenShift 中调用 Spring Boot Web 服务
- flutter - 如何从我的异步函数返回一个值?
- visual-studio - 检查 Visual Studio 版本并使用 Powershell 安装更新版本
- javascript - 默认情况下使用空格键使主体内的容器可滚动
- html - 实时 sass 编译器的正确路径?[解决了]
- powershell - 如何使用 powershell 从文件列表中提取日期和代理名称?
- c# - 如何从两个 Datepicker 中选择的两个日期之间的特定持续时间中排除停电日?
- prolog - 无法在 prolog 中显示输入和输出