《算法导论》第六章-优先级队列(伪代码)
来源:互联网 发布:la域名注册 编辑:程序博客网 时间:2024/05/01 18:16
优先级队列
伪代码:
//返回优先级队列的最大值
Heap_Max(A)
return A[1]
end
运行时间为Θ(1)
//去掉并返回优先级队列中的最大值
/*
* 先记录最大值,将数组最后的元素与第一个元素交换,数组大小减一,
* 调用max_heapify函数保证最大堆的性质,最后返回最大值。
*/
Heap_Extract_Max(A, length)
if length < 1 then error "heap under flow"
max = A[1]
A[1] = A[length]
length --
Max_Heapify(A, 1, length)
return max
end
运行时间为Θ(lgn)
//将优先级队列中的i元素的值增加到key(key >= A[i])
Heap_Increase_Key(A, i, key)
if key < A[i] then error
A[i] = key
while i>1 && A[PARENT(i)] <A[i]
do exchange A[i] <-> A[PARENT(i)]
i = PARENT(i)
end
运行时间为Θ(lgn)
//将元素插入优先级队列.
向最大堆中插入新的关键字。新的关键字插入在优先级的队尾部,然后从尾部的父节点开始自底向上调整堆
MAX_HEAP_INSERT(A,key)
heap_size[A] = heap_size[A]+1
A[heap_size[A]] = -0; //把队尾赋值0或无穷小
HEAP_INCREASE_KEY(A,heap_size[A],key)
end
运行时间为Θ(lgn)
详细资料参考:http://www.cnblogs.com/Anker/archive/2013/01/23/2873951.html
- 《算法导论》第六章-优先级队列(伪代码)
- 算法导论第六章 优先级队列
- 算法导论 第六章:优先级队列
- 《算法导论》第六章----优先级队列(代码实现+部分练习)
- 堆实现优先级队列(算法导论第六章)
- 《算法导论》第六章-堆排序(伪代码)
- 《算法导论》第六章之堆和优先级队列相关算法C语言实现
- 算法导论-优先级队列
- 【算法导论】第六章 再谈 堆排序和最大优先级队列
- 算法导论 第六章优先队列总结
- 算法导论第六章堆排序所给的伪代码转换具体程序
- 《算法导论》 6.5优先级队列
- 《算法导论》第七章-快速排序(伪代码)
- 算法导论 python代码 第六章
- 《算法导论》第6章 堆排序 (2)优先级队列
- 《算法导论》读书笔记之第6章 优先级队列
- 《算法导论》笔记 第6章 6.5优先级队列
- C++最大堆实现priority_queue优先级队列(算法导论)
- db2 存储过程迁移方法
- PHP菜鸟学习之路-php学习笔记变量与运算符练习
- [Power]待机电流问题,如何查找wakelock
- VS2010设置VC6的字体样式及背景色、选中字高亮
- struts filter
- 《算法导论》第六章-优先级队列(伪代码)
- 性能优化:使用SparseArray代替HashMap<Integer,Object>
- Git commands
- nandflash地址的物理地址,逻辑地址,spare地址等理解
- POJ 3984 迷宫问题
- 读文件的一个错误
- 虚继承
- 单调递增连续最长子序列
- c++ hiredis封装