首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

关于优先排队 和 堆排序的一个疑问

2013-09-05 
关于优先列队 和 堆排序的一个疑问。关于优先列队 和 堆排序的一个疑问。优先队列 的出队是按照优先级的,优

关于优先列队 和 堆排序的一个疑问。
关于优先列队 和 堆排序的一个疑问。

优先队列 的出队是按照优先级的,优先级越高,越先出队。如果优先级相同。则先进先出。

一般情况下,优先列队的实现都是用 堆 实现的。好多书上都是这样讲的。

可是问题就来了。

用堆实现的优先列队,和 堆排序很像。但是 堆排序 又是不稳定的,那么那些用堆实现的 优先列队是如何保证 相同优先级的 先进先出的呢? 优先列队?堆排序 优先列队?和?堆排序的一个疑问。 优先列队 堆排序
[解决办法]
不保证……STL的priority_queue用的heap就是不保证同优先级的FIFO的。
要想做到这点,最方便的方法是和把任何排序改成稳定的方法一样,key增加一个field表示原序列中的序号,并让它参与比较。
[解决办法]
优先队列不保证先进先出呀,不过稍微改一改,自己做一个编号,在值相同的情况下比较这个编号就好了。
[解决办法]
扩展个域不就行了

热点排行