摘要: 首先明确优先级队列的两个表象:插入元素删除最小元素能够实现上述两个操作的数据结构-----优先级队列。我们可以使用数组(有序或无序)、单链表、二叉查找树、堆等数据结构来实现。为什么选择堆来实现呢?主要是从时间复杂度来考虑数组(有序):插入操作 O(n) 删除操作 O(1)数组(无序):插入操作 O(1) 删除操作 O(n)单链表:插入操作 O(1)(往表头插) 删除操作 O(n)二叉查找树: 插入操作 O(logn) 删除操作 O(logn)堆 ---- 同二叉查找树 (但二叉查找树对于删除操作来说,因为总是删除左子树,会造成树的不平衡)综上所述,选择最小堆来实现优先级队列实现代码:设数组A[ 阅读全文
posted @ 2014-01-12 17:51 挡不住会飞的鸡 阅读(154) 评论(0) 推荐(0) 编辑