题目描述

输入 n 个整数,输出其中最小的 k 个。

例如输入 1、2、3、4、5、6、7、8 这 8 个数字,则最小的 4 个数字为 1、2、3 和 4。

解法思路

最直接的做法是先把所有输入整数读入一个容器,然后对整个序列进行排序,最后按升序取前 k 个元素即可。对于数据规模较小的情况,这种实现足够清晰,也容易一次写对。

参考代码(C++)

#include <iostream>
#include<vector>
using namespace std;


/*by hk 15-7-1*/

int main(int argc, char *argv[])
{
	int n;
	int k;
	vector<int > data;
	cin>>k;
	while(cin>>n)
	{
		data.push_back(n);
	}

	sort(data.begin(),data.end());

	for(int i=0;i<k;i++)
	{
		cout<<data[i]<<" ";
	}


	return 0;
}