第k++数问题.pptVIP

  • 2
  • 0
  • 约小于1千字
  • 约 9页
  • 2018-06-26 发布于福建
  • 举报
第k数问题

第k++小数问题 100320040 黄美珊 报告时间(2010-10-xx) 问题描述 一个整数集合,具有两种操作: (1)插入操作INS(x):将一个整数x添加到集合中; (2)取数操作GET():如果这是第k(从1开始计数)次GET操作,则取出数集中按非降序排序后的第k个数。 问题描述 数据输入: L1:M(INS操作个数)、N(GET操作个数) L2:按顺序插入的M个整数 L3:N个整数pi,表示数集中有pi个数时, 执行的GET操作 结果输出: 第k次GET操作获取的Kmin数 示例 思路: 全排序代价太大,直接pass。 部分排序如选择排序,但对前K位进行了排序,而且每次GET都要重新排序,不适用与大数据和重复GET操作。 寻找不关注排序,且适用于重复GET和大数据的算法。 STL-heap 算法 设求N个数中的第k min数,维护一个最大堆和一个最小堆; 其中MaxHeap用来存放这N个数中的前K min个数(每次GET操作时);MinHeap用来存放这N个数中的余下N-k个数; 每次GET操作前都要把新的数据Ins到MinHeap中,插入完毕后pop(MinHeap.top)并添加到MaxHeap.把2堆的堆顶调整至MinHeap.top()MaxHeap.top(),此时MaxHeap.top()就是GET()获取到的

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档