- 博客(2)
- 收藏
- 关注
原创 堆、堆排序、优先队列
优先队列的本质是堆,但它具有队列的所有操作特性,与普通队列不同的地方就是出队的时候按照优先级顺序出队,这个优先级即最大堆或最小堆的规则(即大的为top优先出队或小的为top优先出队),在队列的基础上加了个堆排序。以O(log n) 的效率查找一个队列中的最大值或者最小值,即执行堆重构一次,其中是最大值还是最小值是根据创建的优先队列的性质来决定的。C++中优先队列语法, priority_queue<//构造一个空的优先队列(此优先队列默认为大顶堆)//另一种构建大顶堆的方法。
2023-09-10 16:28:52
85
1
原创 哈希表/C++/leetcode/map 与 unordered_map区别
1.拉链法(开散列法),允许某些散列地址可以被多个关键词共享,在Java中, HashMap使用链表来解决碰撞问题,当碰撞发生了,对象将会存储在链表的下一个节点中。hash方法,也叫散列方法,是按关键词编址的一项技术,以给定关键词k为自变量,通过某种函数关系h(k)直接计算出函数值,这个值被解释为存放以k为关键词记录的存储单元的地址。2.线性探查法(开地址法),该方法不建立链表,发生碰撞时,对以h(k)为基地址,按照固定的检索次序,直到找到一个空缺位置。由于红黑树的特性,查找操作的效率较高。
2023-09-08 15:39:16
80
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人