关注
求最小的 k 个元素:
一、 所谓的快排实际上是
QuickSelect(k),通过分治的方式找到第 k 个数, 总时间复杂度 是 O(N) 的,因为前 K 个数不要求有序。 这个方法的主要优点是平均时间复杂度最小 ,如果用
BFPRT 算法,可以把最坏时间复杂度降到 O(N)。
二、 堆排序有两种:
建立大小为 N 的小根堆,出堆 K 次得到最小的 K 个数。 建堆是 O(N),出堆一次
O(logN), 总时间复杂度 O(N+KlogN);
建立大小为 K 的大根堆,如果下一个数比堆顶大就替换掉堆顶元素并维护堆性质,每次操作都是 O(logK),总时间复杂度
O(NlogK)。这个方法的主要优点是空间复杂度最小,如果假设
N 个数通过管道流式输入的话,这个方法的空间复杂度是 O(K);
查看原帖
点赞 2
相关推荐
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
10537次浏览 132人参与
# 你认为工作的意义是什么 #
249161次浏览 1498人参与
# 程序员找工作至少要刷多少题? #
18243次浏览 246人参与
# 为了减少AI幻觉,你注入过哪些设定? #
4475次浏览 147人参与
# 我现在比当时_,你想录用我吗 #
8613次浏览 111人参与
# 机械人避雷的岗位/公司 #
43343次浏览 298人参与
# 一张图晒一下你的AI员工 #
4971次浏览 114人参与
# 论秋招对个人心气的改变 #
10709次浏览 154人参与
# 关于春招/暑期实习,你想知道哪些信息? #
7364次浏览 119人参与
# 刚入职的你踩过哪些坑 #
6722次浏览 127人参与
# AI Coding的使用心得 #
4566次浏览 101人参与
# 晒晒你司的新年福利 #
8392次浏览 105人参与
# 牛客AI体验站 #
6666次浏览 185人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1910次浏览 47人参与
# 柠檬微趣工作体验 #
14763次浏览 83人参与
# 总结:哪家公司面试体验感最差 #
92973次浏览 430人参与
# 程序员能干到多少岁? #
8511次浏览 115人参与
# 你认为小厂实习有用吗? #
118006次浏览 679人参与
# 互联网公司评价 #
485544次浏览 4109人参与
# 应届生进小公司有什么影响吗 #
118253次浏览 1159人参与
查看3道真题和解析