微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

平均案例复杂度示例

如何解决平均案例复杂度示例

我找到了许多最坏情况和最好情况复杂度的示例,但在大多数情况下,平均情况复杂度与最坏情况复杂度相同。有没有平均情况复杂度与最坏情况复杂度不同的例子?如果有,请在递归和迭代情况下进行一些处理。

解决方法

是的,

就绝对而言,平均情况复杂性往往介于最佳和最坏情况之间。 但是,复杂性取决于输入大小和分布 所以它们用 n 的函数表示,这使得它们要么 大多数情况下等于最好的情况或最坏的情况

所以,对于您正在寻找的具体答案,否。

此外,平均案例复杂度有各种与之相关的约束,例如

* A probability distribution on the inputs has to be specified.
* Simple assumption: all equally likely inputs of size n.
* Sometimes this assumption may not hold for the real inputs.
* The analysis might be a difficult math challenge.
* Even if the average-case complexity is good,the worst-case
one may be very bad.

所以,它不太可能被使用

,

基于使用枢轴进行分区的算法通常在最坏情况下的性能很差,因为可能会选择效率低下的分区(即大多数元素最终在同一侧):

  • Quicksort 在平均情况下的时间复杂度为 O(n log n),但在最坏的情况下为 O(n2)。
  • Quickselect 在平均情况下的时间复杂度为 O(n),但在最坏情况下的时间复杂度为 O(n2)。

请注意,quicksort 和 quickselect 都可以使用或不使用递归来实现。

基于 hashes 的算法通常在最坏情况下的性能也很差,因为存在哈希冲突的可能性。例如,对 hash table 的基本操作在平均情况下是 O(1) 时间,但在最坏情况下是 O(n) 时间。

更一般地,为在大致均匀数据上的高效性能而设计的算法可能在非常不均匀的数据上具有更差的性能,例如 interpolation search 从均匀数据上的平均 O(log log n) 降级为最坏情况下为 O(n)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。