数据结构
数据结构学习
Coco-Lele
这个作者很懒,什么都没留下…
展开
-
海量数据找TopK
本质 一种排序问题 快速排序 时间复杂度 最优 O(nlog(n))O(nlog(n))O(nlog(n)),最差 O(n2)O(n^2)O(n2) 分析: 最优情况下,每次的基准值最终都位于数组正中间,相当于每次将数组分成两半遍历; 最差时每次基准值都位于数组开头/结尾,每次只是从n个变为n-1个继续遍历。 题目 最大堆 创建最小堆储存 k 个最大数。对每一个新来的数,比较与堆顶元素的大小,大于堆顶元素,则插入。 时间复杂度 堆可在 log 时间内进行插入和删除 ...原创 2021-12-15 21:42:21 · 288 阅读 · 0 评论 -
归并排序小结
什么是归并排序? 归并排序是用递归实现的排序方法,先将数组不断二分,直至拆分成单个;再两两按大小归并。关键词是先分后合。 分完后合并的顺序如下图所示 归并排序的执行顺序 结合代码 void merge_sort(vector<int> &nums, int l, int r, vector<int> &temp){ if(l + 1>=r) return ; //递归终止条件 //分:不断 int m = (l+r)/2; merge_sor原创 2021-11-23 22:20:40 · 218 阅读 · 0 评论