gpt4 book ai didi

c++ - 具有 O(1) 出队和 O(whatever) 入队的优先级队列

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:10 31 4
gpt4 key购买 nike

我正在用 C++ 编写一个应用程序,其中对优先级队列进行 O(1) 出队操作至关重要,而入队的复杂性并不那么重要(除非它变成 n^2 或 2^n当然)。

一开始我用的是链表。它非常适合出队 (O(1)),并且具有良好的入队复杂度。唯一的问题是,对其进行排序。并不是说使用具有 O(n) 复杂度的插入排序就可以满足我的需要。但是对链表进行排序是一件痛苦的事情。太慢了。

vector 一点也不好。出队将是 O(n) 以将所有元素移回一个位置。入队仍然是 O(n),但速度要快得多。

你能推荐更高效的方法吗?谢谢。

最佳答案

反向排序的vector 有 O(1) pop_back 和 O(n) 插入。

关于c++ - 具有 O(1) 出队和 O(whatever) 入队的优先级队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10783714/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com