cost 129 ms
在最小配对堆中查找 N 个最小值的高效算法 - Efficient algorithm for finding N min values in a min pairing-heap

我正在使用此处找到的配对堆实现: https://github.com/jemalloc/jemalloc/commits/dev/include/jemalloc/internal/ph.h 虽然我偶尔需要迭代堆中的 N 个最小值(其中 N 受堆中元素数的约束,但通常更少)。 有什么有效的方法吗? ...

在类中自动增加变量 - Automatically increasing variable within a class

因此,我正在用C ++编写一件事,并且正在尝试实现具有配对堆的优先级队列。 我希望此优先级随着时间的推移自动增加,这样,如果元素(一个类)已经在堆中停留了5分钟,那么它的优先级(变量)就增加了。 而且我不知道如何实现这一目标。 我可以实现一个函数,该函数将检查每个元素每个设置时间的持续 ...

配对堆-O(1)用于减少密钥吗? - Pairing heaps - O(1) for decrease key?

我正在为我的一门课程分配作业,一个问题要求表明,对于成对堆,减少键操作需要O(1)时间。 显然,如果您有一个指向要减小的键的指针,则该操作将花费O(1)时间(只需删除链接,更改键值然后合并)。 但是,在赋值的任何地方都没有说明我们得到了指向该键的指针。 如果没有给我们指针,那么re ...

PHP中的匈牙利算法,具有多个分配 - Hungarian algorithm in PHP with multiple assignments

在下文中,我们面临匈牙利算法的多重分配问题。 场景: 我们有100名学生和5门课程,学生可以优先投票。 因此,每个学生将被分配参加一门特定课程。 优先级从1到5。最低1,最高5 原始数据如下所示: 显然,行多于列。 我们面临的问题是:每列需要多个分配。 ...

为什么在delete_min时配对堆需要特殊的两次传递? - Why does pairing heap need that special two passes when delete_min?

我正在阅读配对堆 。 这很简单,唯一棘手的部分是delete_min操作。 唯一不重要的基本操作是从堆中删除最小元素。 标准策略首先从左到右合并子堆(这是赋予此数据结构名称的步骤),然后从右到左合并生成的堆列表: 我不认为我需要在这里复制/粘贴代码,因为它在wiki链接 ...

配对堆-减少密钥的实现 - Pairing heap - implementation of decrease key

我刚刚实现了配对堆数据结构。 配对堆支持在O(1)摊销时间内插入,查找最小,合并,并在O(logN)摊销时间内删除,删除最小。 但是最显着的操作是减少键,它具有复杂度O(log logN)。 有关配对堆的更多信息,请访问http://en.wikipedia.org/wiki/Pairin ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM