题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4.
思路一:如果允许修改数组,可采用Partition
思路二:我们可以先创建一个大小为k的数据容器来存储最小的k个数字,接下来我们每次从输入的n个整数中读如一个数。如果容器中的数字少于k个,则直接把数字加入容器中;如果容器中已有k个数字了,找出已有的k个数中最大值,然后插入的整数和最大值进行比较。如果待插入的值比当前已有的最大值小,则用这个数替代当前已有的最大值;如果待插入的值比当前已有的最大值还要大,抛弃这个整数。