84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
优先级队列中的decrease-key是什么意思,表示的是什么操作?
decrease-key
光阴似箭催人老,日月如移越少年。
如果你问的是STL中的priority_queue的话,我想到c++11为止是没有提供decrease-key的方法的。我在做prim算法的时候也遇到过这个问题,如果去查看libc++中priority_queue的源码,你就会发现它只不过是一个适配器,是在vector上使用make_heap生成的。但是你可以依照同样的方法也在vector上建堆得到你想要的容器。另外你还可以使用set中的红黑树,它有和priority_queue一样的时间复杂度,只是常数值更大一些而已。
如果你问的是STL中的priority_queue的话,我想到c++11为止是没有提供decrease-key的方法的。
我在做prim算法的时候也遇到过这个问题,如果去查看libc++中priority_queue的源码,你就会发现它只不过是一个适配器,是在vector上使用make_heap生成的。但是你可以依照同样的方法也在vector上建堆得到你想要的容器。另外你还可以使用set中的红黑树,它有和priority_queue一样的时间复杂度,只是常数值更大一些而已。