实时排列数组
回答
你不会“实时排序”。到目前为止,您可能会使用前50个出价中的heap(优先队列)数据结构。如果下一个出价高于最低出价,那么您会删除最低出价,然后插入新出价。优先级队列允许您快速找到最小值,删除它并添加一个新值。
您可以通过将新出价和离开出价之间的差额的1/50相加(只有当新出价优于第50次出价时)才能保持平均值。
只是为了澄清:在堆中找到最小值的快速方法是什么?最大值很容易,但最小值似乎涉及在某个点扫描堆(或至少是叶)。除非你切换东西,以使分钟成为堆的顶部...... – cHao
您可以定位堆,以便可以使用最大值或最小值。您正在保存50个最高值。您订购堆以便min和delete_min速度很快。如果您只有一堆可以执行delete_max的堆,则可以只存储出价的负值。 –
你认为每次更新维护堆是否可行?因为对于每次更新,我都必须先创建堆,然后通过删除50个元素来读取堆。 –
- 1. 用数组排列数组
- 2. 排列数组数组列表
- 3. jqGrid排列数组
- 4. C++,同时排列单独的数组
- 5. 按列排列数组
- 6. 在日期时间在PHP中排列数组中的数组
- 7. 同时对一维数组和二维数组排序(按列)
- 8. 按字符数组排列的组数
- 9. 按键排列对象数组数组
- 10. 遍历数组的排列
- 11. 按星期排列数组
- 12. 数组排序列表
- 13. 任意排列数组键
- 14. Java:数组的排列
- 15. 突破数组子排列
- 16. 按群组排列数据
- 17. 二维数组的排列
- 18. 在PHP数组排序列
- 19. 如何排列数组:string []?
- 20. 随机排列的数组
- 21. 排序数组列表
- 22. 数组项的排列
- 23. 按升序排列数组
- 24. 按值排列数组
- 25. 排序数组的列表
- 26. 按降序排列数组?
- 27. 排序数组(或列表)
- 28. 排序字符串排列数组
- 29. ArrayIndexOutOfBoundsException排序数组时
- 30. 按数组排列的Codeigniter组
计算所有出价的平均值还是只计算前50? –