题目描述
输入 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;
}