算法导论-堆排序学习笔记
2013-08-06 10:57
225 查看
最开始研究的是大顶堆,父亲节点的值会大于两个孩子节点的值,但是左孩子跟右孩子没有值之间的差异。
插入一个元素的时候,整个堆可能不满足堆的性质,所以要调整堆,调整算法如下:
MAX_HEAPIFY(A,i)
l = Left(i)
r = Right(i)
if l < A.heap_size && A(l) > A(i)
largest = l
else largest = i
if r < A.heap_size && A(r) > A(largest)
largest = r
if largest != i
swap(A(largest),A(i))
MAX_HEAPIFY(A,largest)
T(n) = T(2n/3) + O(1)
根据主定理可以得知 调整堆的时间复杂度为O(lgn)
根据完全二叉树的性质,可以得知堆的所有的叶子节点的下标范围为n/2+1~n.所以建堆的算法如下
BUILD-MAX_HEAP(A)
A.heapsize= A.length
for i in n/2.....1
MAX_HEAPIFY(A,i)
HEAP_SORT(A)
BUILD-MAX_HEAP(A)
for i in A.length ...2
swap(A[i],A[1])
A.heapsize -= 1
MAX_HEAPIFY(A,1)
堆排序的应用:优先级队列
堆排序算法并没有快速排序性能好,优先队列的应用有很多,在共享计算机调度当中,会从等待队列当中找到优先级最高的作业,从队列当中摘出来进行调度。
阅读(48) | 评论(0) | 转发(0) |
0
上一篇:算法导论-计算时间复杂度主定理
下一篇:用printf打印uint64_t的符号
相关热门文章
Hadoop分布式文件系统安全隐患...
数据结构之最短路径(Floyd)...
网络设备驱动读书笔记...
Camera--V4L2驱动学习记录...
http://blog.donews.com/limod...
linux 常见服务端口
什么是shell
【ROOTFS搭建】busybox的httpd...
linux socket的bug??
linux的线程是否受到了保护?...
这样配置的服务器能够承受8k并...
vm里的系统能够ping到nfs,但...
bind是否随机从两台master中读...
在win7下用cygwin搭建hadoop,...
Mysql的binglog日志能否分库备...
给主人留下些什么吧!~~
评论热议
插入一个元素的时候,整个堆可能不满足堆的性质,所以要调整堆,调整算法如下:
MAX_HEAPIFY(A,i)
l = Left(i)
r = Right(i)
if l < A.heap_size && A(l) > A(i)
largest = l
else largest = i
if r < A.heap_size && A(r) > A(largest)
largest = r
if largest != i
swap(A(largest),A(i))
MAX_HEAPIFY(A,largest)
T(n) = T(2n/3) + O(1)
根据主定理可以得知 调整堆的时间复杂度为O(lgn)
根据完全二叉树的性质,可以得知堆的所有的叶子节点的下标范围为n/2+1~n.所以建堆的算法如下
BUILD-MAX_HEAP(A)
A.heapsize= A.length
for i in n/2.....1
MAX_HEAPIFY(A,i)
HEAP_SORT(A)
BUILD-MAX_HEAP(A)
for i in A.length ...2
swap(A[i],A[1])
A.heapsize -= 1
MAX_HEAPIFY(A,1)
堆排序的应用:优先级队列
堆排序算法并没有快速排序性能好,优先队列的应用有很多,在共享计算机调度当中,会从等待队列当中找到优先级最高的作业,从队列当中摘出来进行调度。
阅读(48) | 评论(0) | 转发(0) |
0
上一篇:算法导论-计算时间复杂度主定理
下一篇:用printf打印uint64_t的符号
相关热门文章
Hadoop分布式文件系统安全隐患...
数据结构之最短路径(Floyd)...
网络设备驱动读书笔记...
Camera--V4L2驱动学习记录...
http://blog.donews.com/limod...
linux 常见服务端口
什么是shell
【ROOTFS搭建】busybox的httpd...
linux socket的bug??
linux的线程是否受到了保护?...
这样配置的服务器能够承受8k并...
vm里的系统能够ping到nfs,但...
bind是否随机从两台master中读...
在win7下用cygwin搭建hadoop,...
Mysql的binglog日志能否分库备...
给主人留下些什么吧!~~
评论热议
相关文章推荐
- 算法导论学习笔记--2--堆排序
- 算法导论学习笔记——第6章 堆排序
- 算法导论学习笔记(一)排序算法之堆排序
- 算法导论学习笔记之四--堆排序
- 算法导论学习笔记-第六章-堆排序
- 算法导论学习笔记(1)---堆排序
- 算法导论学习笔记——堆排序
- 《算法导论》学习笔记--第六章 堆排序
- 算法导论学习笔记(八):二叉查找树
- 算法导论学习笔记(7)——动态规划之装配线调度
- 算法导论笔记之堆排序
- 算法导论学习笔记——第7章 快速排序
- 算法导论---学习笔记07
- 算法导论---学习笔记012
- 算法导论学习笔记——第10章 基本数据结构
- 算法学习导论学习笔记-第6章 堆排序
- 【算法导论】学习笔记——第6章 堆排序
- 算法导论学习笔记 -(1)
- 插入排序算法学习——算法导论学习笔记
- 算法导论学习笔记(1,2)