【问题标题】:How to prove worst-case number of inversions in a heap is Ω(nlogn)?如何证明堆中最坏情况的反转数是Ω(nlogn)?
【发布时间】:2011-03-01 17:43:23
【问题描述】:

我正忙着准备考试,只是在做一些旧试卷。下面的问题是唯一一个我似乎做不到的问题(我真的不知道从哪里开始)。任何帮助将不胜感激。

使用 Ω(nlogn) 比较排序界限、自底向上堆构造的 theta(n) 界限和插入排序的顺序复杂度来表明堆中最坏情况的反转数是 Ω(nlogn )。

【问题讨论】:

  • “以及插入排序时的订单复杂度” - 什么?
  • 这就是他们给你的一切。我复制/粘贴了问题。但如果我没记错的话,堆中的插入排序是 O(n^2)?
  • 堆怎么会有倒置?堆的定义可以防止元素垂直乱序。你的意思是堆映射到的底层数组中的反转,还是什么?

标签: algorithm heap analysis performance


【解决方案1】:

插入排序的复杂度是 O(n+d),其中 d 是反转对的数量。

现在假设您有一组数字,您将其堆化 (Theta(n)),然后对它们执行插入排序。关于堆数组中最坏情况的反转对数,它说明了什么?

【讨论】:

  • 我认为这就是问题所在:它在说什么? :)
  • @|Vlad:我真的需要拼出来吗?笑脸让我觉得你在开玩笑,但没有点赞让我觉得你是认真的 ;-) :-P
  • @Moron - 我个人认为,但我认为更多细节对 OP 来说会很好。比如OmegaTheta 的含义以及它们如何帮助您获得结果。
  • @IVlad:我认为 OP 在准备考试时理解这些术语的含义,这是之前考试中的问题之一!我故意让它未完成,因为我把它当作“几乎是家庭作业”。如果 OP 回来要求澄清,我会提供给他们,但直到他们自己付出一些努力。
  • 我现在正在浏览其他一些论文。但我确实知道它们的意思。谢谢,我想我现在明白了,但稍后会写出来以确保。 :)
猜你喜欢
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
  • 1970-01-01
  • 2014-08-01
相关资源
最近更新 更多