怎样在N个已完成排序的集合中选出m个最大数算法的代价是多少
有序的话二分这个时间,然后在N个好友中用二分找到这个时间,可知有多少在信息在此时间之前,多少在此之后。直到找到在此之后的数量为m。总的复杂度为O(n * log(ti) * log(k)),k为时间跨度。这样不用建堆,编程也简单,m比较大时效率还高,因为该算法的效率同m无关。
■网友
给数组的引用或者下标按照每个数组的未选出消息时间排序,然后选出一条最新消息,然后继续排序(有序队列中插入一条,堆,二分都可),选出下一条。logn*m
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 大连已完成475.65万人次核酸检测采样
- 互联网怎样解决“家政服务上门速度慢”的问题
- 大丰|盐城大丰开通智慧养老服务平台 已完成17万次上门服务
- |盐城在建省级农业农村重大项目已完成投资65.9亿元
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
