第二百二六章 优先级队列(中)


小说:编程之战   作者:程序小猿   类别:未来世界   加入书签   【章节错误/点此举报】   【更新慢了/点此举报
推荐阅读: 永恒剑主 | 星光灿烂 | 巨星夫妻 | 弑天刃 | 九重神格 | 超警美利坚 | 步步惊唐 | 绝世天君 | 都市幻界 | 异度
笔趣阁 //www.boquge.com/book/105094/ 为您提供编程之战全文阅读!注册本站用户,获取免费书架,追书更方便!
  对于优先级队列里面的元素,它们遵循两个排序规则:
  1.具有更高优先级的元素先弹出。
  2.如果元素优先级相同,那么就跟队列的性质一样,先进先出。
  怎么来实现它呢?
  一种经典的解决方案是使用一个最小二叉堆。
  二叉堆本质上是一棵完全二叉树,而最小堆,对于它每一个节点,都小于或等于其左子节点和右子节点。
  这就是堆的完全性与有序性。
  杨成很快就了解了这些基本的概念,不过他却面临一个技术方案选型的问题。
  对于很多数据结构,都可以考虑链表或数组来实现。
  这个最小堆,用哪一种方案更好呢?
  经理很快给出了答案。
  “你可以使用数组来实现”。
  “更简洁,而且某些操作的效率会更高些”。
  杨成思索了一段时间,便开始编写代码。
  其实要提供的API就2个,删除最小元素和插入元素操作。
  但是如果要写的高效,还是得费一番功夫的。