[英]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)
而當隊列大小為大的。
基准代碼可以在這里找到。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.