当数据是流的形式 解决top k 和 select k 快排还是优先队列
老师您好,
在这小节里你提到,当数据是以流的形式一点一点的传来,这个时候优先队列比快排更适合。这是为什么呢?使用快排也能实时的(对原来的数组和新来的数据进行排序)得到top k和select k的答案。为什么优先队列就更适合呢?
18
收起
正在回答
1回答
因为快排需要先知道所有的数据,才能做排序;
数据流的形式,不需要一次性拿到所有的数据,数据是一点一点“流进来的”,每来一个数据,就可以做更新,得到当前的最优结果。
比如要想实时知道当前消费最多的十笔订单。订单是一点一点产生的,这就叫数据流。所以可以使用优先队列的方式,每来一笔订单,更新一下优先队列,得到当前的消费最多的十笔订单。
每来一笔订单,排一次,太慢,等一年所有订单都来了,一起排序,无法满足业务需求。
继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星