1.概念
堆是一种特殊的树形结构,建立在完全二叉树的基础上,属于特殊的完全二叉树。
2.分类
堆可以分为最大堆和最小堆:
最大堆:每个父节点都大于孩子节点
最小堆:每个父节点都小于孩子节点
3.堆的作用
(1) 优先队列的实现;
(2) 堆排序;
(3) 大数据处理 - 海量数据top K问题(问题描述: N个数据,此N 个数很大,找出最大的前K个);
(4) HeapSort : 利用堆的性质给数组排序 , 并且不创建堆
4.堆的实现
堆一般用数组实现,也可用链表实现
1 上浮(shift_up);
2 下沉(shift_down);
3 插入(push);
4 弹出(pop);
5 取顶(top);
6 堆排序(heap_sort);