从无限长度的实时动态数据集中获取前五条记录的最佳算法
Best algorithm to fetch top five records from a real time dynamic data set with infinite length
假设我们有一组具有某些值的动态记录
( 7,8,1,15,3,31,63,21,9,..... (以此类推,数值持续实时更新))
从这个实时增加的动态数据集中获取前 5 个值的最佳方法/算法是什么?
注意:对于上面的例子,到目前为止,结果应该是 (63,31,21,15,9)
您没有使用"real-time sort"。您应该使用前 5 个的堆(优先级队列)数据结构。如果下一个值高于最小值,那么您将删除最小值,然后插入新值。优先队列可以让你快速找到最小值,删除它,并添加一个新值。
您可以通过添加新值与新值之间的差值的 5 来保持该值(仅当新值优于第 5 值时)。
假设我们有一组具有某些值的动态记录 ( 7,8,1,15,3,31,63,21,9,..... (以此类推,数值持续实时更新))
从这个实时增加的动态数据集中获取前 5 个值的最佳方法/算法是什么?
注意:对于上面的例子,到目前为止,结果应该是 (63,31,21,15,9)
您没有使用"real-time sort"。您应该使用前 5 个的堆(优先级队列)数据结构。如果下一个值高于最小值,那么您将删除最小值,然后插入新值。优先队列可以让你快速找到最小值,删除它,并添加一个新值。
您可以通过添加新值与新值之间的差值的 5 来保持该值(仅当新值优于第 5 值时)。