Java 如果有大量的插入操作,哪个优先级队列的实现会有效?
假设您的应用程序将有大量的插入操作,但是 只有少数删除最大操作。您需要哪个优先级队列实现 您认为最有效的方法是:堆、无序数组还是有序数组Java 如果有大量的插入操作,哪个优先级队列的实现会有效?,java,Java,假设您的应用程序将有大量的插入操作,但是 只有少数删除最大操作。您需要哪个优先级队列实现 您认为最有效的方法是:堆、无序数组还是有序数组 有人能举例说明吗?你见过类似的问题。 优先级队列有四种实现:对于您的案例,最好是未排序的 |Structure | Insertion | Extract-max| |---------- |---------- |------------| |Unordered list | O(1) | O(n)
有人能举例说明吗?你见过类似的问题。
优先级队列有四种实现:对于您的案例,最好是未排序的
|Structure | Insertion | Extract-max|
|---------- |---------- |------------|
|Unordered list | O(1) | O(n) |
|Ordered list | O(n) | O(1) |
|Binary Search Tree | O(logn) | O(logn) |
|Heap | O(logn) | O(logn) |
----------------------------------------------
是否或回答了您的问题?@DylanVanderBerg,来自PQ实现,使用堆、无序数组或有序数组。当我们的应用程序中有大量插入操作和少量删除操作时,这种方法更有效。请尝试阅读此文章。无序数组如何实现优先级队列?而
java.util.PriorityQueue
而不是任何一种数组又有什么错呢?@user7790438这个问题仅来自于那篇文章,请参阅练习题11。