这是在面试常遇到的topk问题. 题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解题思路: 思路一:用快排对数组做一次排序,输出前k个.这种方法会改变原数组排列,复杂度为O(nlogn). 思路二:基于partition思想,进行一次快速排序用哨兵数分割数组中的数据.由于partition每次将数组分成两段,左半部分小于关键字,右半部分大于关键字.可以递归做partition,关键字位置,若关键字位置等于k…