C#
文章平均质量分 85
Lonverce
路漫漫其修远兮, 吾必将上下而求索. 衣带渐宽终不悔, 未成大神誓不退.
展开
-
C#利用二叉堆实现优先队列
相信许多人都发现并好奇,.Net Framework 为什么没有为我们提供优先队列这种数据结构的封装实现?其实不然,基于红黑树实现的SortedDictionary泛型类恰是优先队列的一种实现,而且其功能更为灵活。不过对于我而言,却总希望写一个利用二项堆实现的优先队列,尽管这两者从算法复杂度的层面上而言相差无几,都能在O(log2N)内提供添加和移除操作,但实际上,算法编码的复杂度...原创 2018-03-17 17:35:49 · 1263 阅读 · 0 评论 -
C#利用斐波那契堆实现优先队列
继上一章C#利用二叉堆实现优先队列之后,我们继续来探究一下关于优先队列的另一个实现 —— 斐波那契堆(Fibonacci Heap)。 相比起二叉堆中规中矩的实现而言,斐波那契堆的设计显得更为大胆而精妙。在这里,我们只讨论使用最频繁的两个操作:插入与移除,而不考虑优先级变更与关键字搜索等功能,因为这两个功能对我而言绝不常用,而且会使我们的结构变得复杂,所以我任性地作出...原创 2018-03-27 12:35:17 · 716 阅读 · 0 评论