对于每个条目,优先级队列都有一个优先级值和数据。在Javascript中实现优先队列的有效方法?
因此,当向队列中添加一个新元素时,如果它具有比集合中已有的元素更高的优先级值,则它会冒泡到表面。
当我们调用pop时,我们得到最高优先级元素的数据。
什么是在Javascript中的这种优先级队列的有效实现?
是否有意义有一个名为PriorityQueue的新对象,创建两个方法(push和pop),其中包含两个参数(数据,优先级)?对我来说,作为一个编码器是很有意义的,但是我不确定在哪个数据结构中使用的下腹部将允许操纵元素的排序。或者我们可以将它全部存储在一个数组中,并且每次遍历数组以获取最大优先级的元素?
这样做的好方法是什么?
酷,非常感谢!我想知道:在实现中使用2个单独的数组是更有意义的吗(一个用于数据,一个用于优先级,并且数据[i]和优先级[i]是相同的“对”),或者使用2d [] []数组?因为,第一个选项只使用2n空间,但第二个选项最多可以使用n^2 – sova
我只使用一个数组。并且这两个选项都使用'2n'空格,因为多维数组中的每一行只有两个元素(固定长度)。 – gyre
啊哈我看到了!再次感谢朋友,非常有帮助。 – sova