簡體   English   中英

相對於使用堆,使用帶有 insert() 的向量作為優先級隊列的開銷是多少? (c++)

[英]Is the overhead for utilizing a vector with insert() as a priority queue relative to utilizing a heap? (c++)

我目前正在開展一個項目,在該項目中我實現了一個結構指針向量以用作優先級隊列。 我使用 for 循環來確定向量中的 position(如果不小於后面),然后使用insert()將結構指針放入隊列中的 position 中。 我使用back()作為隊列的前面,所以我可以保持向量的彈出功能。

我只是想確定使用堆庫是否會增加速度,因為這個項目取決於時間。 如果您願意,可以提供代碼,堆/向量的大小可能會大大增加,因為這是 hanoi A* 搜索算法的塔。

想如果有人知道的話,我也會要求未來的知識,以便為我節省一些調試斷點洗牌。

我做了一個簡單的基准測試,首先將N個隨機int插入優先級隊列,然后彈出N個頂部元素。

預期,當隊列大小較小時,具有線性搜索的已排序std::vector std::priority_queue O(log N)而當隊列大小為大的。

優先隊列基准測試 - Intel(R) Core(TM) i7-4770

基准代碼可以在這里找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM