【问题标题】:Difference between Java's PriorityQueue constructor call and addAll methodJava的PriorityQueue构造函数调用和addAll方法的区别
【发布时间】:2019-05-18 18:28:13
【问题描述】:

我正在解决 leetcode 上的一个问题,有人告诉我,使用集合实例化 PriorityQueue 需要 O(n) 时间,而 addAll 方法需要 O(nlogn) 时间。它是否正确? 我找不到任何证据。

https://www.techiedelight.com/find-kth-largest-element-array/这个网站3号的做法是用addAll(List)来创建一个PriorityQueue真的是O(n)吗?

【问题讨论】:

  • 我从未使用过优先级队列。你能描述一下它的算法吗?

标签: java data-structures priority-queue


【解决方案1】:

PriorityQueue 在 java 中从 AbstractQueue 获取 addAll 方法。 documentation 表示 addAll 方法只是遍历提供的集合。所以我会说 addAll 需要 O(n) 时间。如果您不相信,请查看the source code

【讨论】:

    猜你喜欢
    • 2015-01-05
    • 2012-11-13
    • 2016-11-04
    • 1970-01-01
    • 2013-10-04
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    相关资源
    最近更新 更多