【发布时间】:2021-10-11 09:14:22
【问题描述】:
线性搜索花费时间的最坏情况是当项目位于列表/数组的末尾或不存在时。在这种情况下,算法将需要执行n 比较,以查看每个元素是否是所需的值,假设n 是数组/列表的长度。
根据我对大 O 表示法的理解,说这个算法的时间复杂度是 O(n) 是有道理的,因为它可能会发生最坏的情况,并且在以下情况下使用大 O我们想对“最坏情况”进行保守估计。
从 Stack Overflow 上的很多帖子和答案来看,这种想法似乎是有缺陷的,诸如 Big-O 表示法与最坏情况分析无关。
请帮助我理解这种区别,而不仅仅是增加我的困惑,就像这里的答案:Why big-Oh is not always a worst case analysis of an algorithm? 那样。
我没有看到 big-O 与最坏情况分析无关。在我目前的山顶上,看起来 big-O 表示最坏情况如何随着输入大小的增长而增长,这似乎与最坏情况分析非常“相关”。
诸如此类的声明,来自https://medium.com/omarelgabrys-blog/the-big-scary-o-notation-ce9352d827ce:
例如,最坏情况分析给出了假设输入处于最坏可能状态的最大操作数,而大 o 表示法表示在最坏情况下完成的最大操作数。
帮不上什么忙,因为我看不出所指的是什么区别。
非常感谢任何增加的清晰度。
【问题讨论】:
标签: algorithm time-complexity linear-search