摘要: 13.6 : 加强堆,通过改写经典堆的底层代码 阅读全文
posted @ 2022-05-17 16:47 yzmarcus 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 13.5: 最大线段重合问题(堆实现),敏感度 给定很多线段,每个线段都有左右两个位置 [ start, end ],表示线段开始位置和结束位置,左右都是闭区间, 规定: 1、线段的开始和结束位置一定都是整数值; 2、线段重合区域的长度必须 >= 1,一个点不算重合区域; 线段 a [1, 3] b 阅读全文
posted @ 2022-05-17 15:40 yzmarcus 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 13.4:建堆两种方式以及时间复杂度讨论 这也是堆这一章节最重要的两方法,涉及到后面的加强堆的实现。 1、如果是一个数一个数的给,自然可以通过heapInsert()来建堆,这是自下而上的方式, 时间复杂度O(N * logN); 2、给一个数组建堆也可以通过heapify()的方式,这是自上而下的 阅读全文
posted @ 2022-05-17 15:16 yzmarcus 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 13.3:堆排序说明 基于比较的排序时间复杂度O(N * logN)是最好的了 1、先让整个数组都变成大根堆,建立堆的过程 1.1、从上到下的方法,时间复杂度O(N * logN) 1.2、从下到上的方法,时间复杂度O(N) 2、把堆的最大值和堆末尾的值交换,然后减少堆的大小之后,再去调整堆,一直周 阅读全文
posted @ 2022-05-17 10:32 yzmarcus 阅读(31) 评论(0) 推荐(0) 编辑