堆的性质
1.堆中某个节点的值总是不大于或不小于其父节点的值
2.堆总是一棵完全二叉树
堆是一个数据结构,实际是一棵完全二叉树,是使用数组存储的。
堆是非线性的
堆真正的价值是选数,是效率很高
小根堆:
1.完全二叉树
2.树中所有的父亲都是小于等于孩子
大根堆:
1.完全二叉树
2.树中所有的父亲都是大于等于孩子
注意:不代表从小到大存或从大到小存
小根堆大根堆存在的意义:
1.排序。堆排序O(N*logN),堆排序本质是一种选择排序。虽然不能保证有序,但是堆能选出最大或最小的数,对于解决top-k问题很有帮助。
那么排升序是建大堆还是小堆呢?
很多人觉得是建小堆,实际上建大堆好一点,
如果每次都是用建堆选数据,整体时间复杂度为O(N*N),因为建堆哦,关系乱了,只能再舰队选数,不是不可以,只是效率太差,没有使用到堆的优势
上一篇:外地车进京限行最新规定2023(外地车进京限行最新规定2023几环) 外地车进京限行最新规定 外地车进京限行时间最新规定
下一篇:书籍是人类进步的阶梯是谁说的来(书籍是人类进步的阶梯是谁说的来着) 书籍是人类进步阶梯高尔基怎么读 书籍是人类进步的阶梯而不是什么