algorithm - 在无序列表中找到一个既不是最大也不是最小值的元素需要多少次比较?

标签 algorithm

如果我们有一个无序列表有 n 个不同的元素,那么现在我对时间复杂度是 ϴ(n) 还是 ϴ(1) 感到困惑,因为在最坏的情况下我们可能最终会进行 n 次比较,但是如果我采取一次3个元素然后我可以在ϴ(1)时间内找到第二大元素,所以我对这两种方法感到困惑,请指导。

最佳答案

这很简单:

第一种方法有很多完全无用的开销。由于列表仅包含不同的项目,前三项中的一项必须满足既不是列表中最大元素也不是最小元素的约束。对于查找与约束条件匹配的任意元素而言,所有其他比较都是完全无用的。

关于algorithm - 在无序列表中找到一个既不是最大也不是最小值的元素需要多少次比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34551456/

相关文章:

algorithm - 面试难题 : A Broken Calculator

algorithm - 惰性传播线段树实现难点

algorithm - 使用 AVL 树和二叉树的该算法的时间复杂度是多少

algorithm - 提高算法知识的 Material 和信息

c++ - 加速文件扫描crc算法

algorithm - 在 O(n) 中对 [0,n^2 - 1] 之间的 n 个数字进行排序?

performance - 更快地构建 trie

algorithm - APL习语渐进索引

python - 在Python中实现中值选择算法的中值

javascript - 在网格中查找随机放置的元素 (x,y)