题目: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 分析: 最先想到的是将数组升序排列,返回前k个元素.不过排序的话效率可能会较低,我们可以使用优先级队列模拟堆来处理. 模拟一个k个元素的最大堆,当堆内元素个数等于k的时候,新来的元素就要和堆顶元素去比较,如果小于堆顶元素,就删除堆顶元素,将新元素添加进堆中,由于最大堆的堆顶元素是最大元素,我们可以保持堆中元素始终是最小的几个,因为每有新的元素来,都会进行比较,最后堆…