算法原理 第六章 堆排序
来源:互联网 发布:51自学网单片机 编辑:程序博客网 时间:2024/06/03 14:24
Heap
Definition of Heap:
Array A[]
NODE(i): i
PARENT(i): lower(i / 2)
LEFT(i): 2i
RIGHT(i): 2i + 1
MaxHeap:
A[PARENT(i)] >= A[i]
MinHeap:
A[PARENT(i)] <= A[i]
Max-Heapify
Find out the largest number from pos i and its two children, set that to pos i, iterative the process till no need to exchange.
Time Complexity O(lg(N))
MAX-HEAPIFY(A, i) l = LEFT(i) r=RIGHT(i)if l <= A.heap-size and A[l] > A[i] largest = lif l <= A.heap-size and A[r] > A[largest] largest = rif largest != i exchange A[i] with A[largest] MAX-HEAPIFY(A, largest)
Build Max-Heap
Time Complexity O(N)
BUILD-MAX-HEAP(A)A.heap-size = A.lengthfor i = lower(A.length / 2) downto 1 MAX-HEAPIFY(A, i)
Heap Sort
Time Complexity O(Nlg(N))
HEAP-SORT(A) BUILD-MAX-HEAP(A) for i = A.length downto 2 exchange A[1] with A[i] A.heap-size = A.heap-size - 1 MAX-HEAPIFY(A, 1)
0 0
- 算法原理 第六章 堆排序
- 算法导论: 第六章 堆排序算法
- 算法导论读书笔记 第六章 堆排序
- 算法导论第六章:堆排序
- 算法导论第六章 堆排序总结
- 算法导论第六章 堆排序
- 算法导论 第六章 堆排序
- 【算法导论】第六章之堆排序
- 算法导论第六章 堆排序
- 堆排序(算法导论第六章)
- [算法导论]第六章《堆排序》
- 算法导论第六章堆排序思考题
- 算法导论第六章 堆排序
- 算法导论 第六章 堆排序
- 算法导论第六章-堆排序
- 算法导论--第六章--堆排序
- 算法导论第六章总结:堆排序
- 算法导论 第六章:堆排序
- 行为型设计模式-责任链模式
- FFmpeg的HEVC解码器源代码简单分析:概述
- 使用GO连接MYSQL数据库
- 分布式实时系统STORM的运行时模型
- Java-SE:Java只存在值传递,不存在引用传递
- 算法原理 第六章 堆排序
- JAVA并发编程-阻塞队列和阻塞栈
- 完全卸载oracle11g步骤
- 吝啬的国度 【vector】+【DFS】
- c++定时器实现
- redis事务
- 启动service方法
- 手指控制图片移动
- 通过jsonp解决ajax的跨域请求问题