【发布时间】:2023-02-10 13:35:16
【问题描述】:
queue.PriorityQueue 的文档说:
首先检索最低值的条目(最低值的条目是
sorted(list(entries))[0]返回的条目)。这是否意味着每次我使用
PriorityQueue的get方法时,元素都会重新排序?那似乎效率低下。
【问题讨论】:
标签: python performance sorting priority-queue
queue.PriorityQueue 的文档说:
首先检索最低值的条目(最低值的条目是
sorted(list(entries))[0]返回的条目)。这是否意味着每次我使用
PriorityQueue的get方法时,元素都会重新排序?那似乎效率低下。
【问题讨论】:
标签: python performance sorting priority-queue
这并不意味着元素每次都重新排序 你使用 get 方法。
PriorityQueue的元素存储在binary heap data structure中,这样可以在调用方法时高效地检索最小元素。因此,当以最低值元素始终位于堆顶部的方式进行排序时。这就是为什么您首先会获得最小值的原因。
【讨论】: