Day36
第13天:树结构深化(二)——堆与优先队列
今日任务:
1. 完成3道堆应用题(如“数组中的第k个最大元素”“数据流中的中位数”“合并k个升序链表”),分值350-450分;
2. 手动模拟“大根堆”的插入与删除过程(各3次),理解“上浮”和“下沉”操作;
3. 对比“堆排序”与“快排”的效率(如“堆排序O(n logn),但不稳定;快排平均O(n logn),最坏O(n²)”)。
今日感悟方向:
堆的“下标计算”是基础(左孩子=2i+1,右孩子=2i+2),但实际做题更依赖语言自带的优先队列(如Python的heapq),关键是“定义堆的类型(大根堆需取负)”。“合并k个链表”用堆比暴力合并高效太多,这说明“数据结构选对了,复杂度能降一个量级”。堆的“动态维护”能力(如随时插入并保持有序)是其核心优势,适合“实时求最值”场景。
明日计划:动态规划进阶(一)——背包问题。
浙公网安备 33010602011771号