题目
输入n个整数,找出其中最小的k个整数并按升序输出
本题有多组输入样例
数据范围:1 ≤ n ≤ 1000 ,输入的整数满足:1 ≤ val ≤ 10000
输入描述:
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述:
从小到大输出最小的k个整数,用空格分开。
示例
输入:5 2
1 3 5 7 2
输出:1 2
思路
用快排将整数数组中的元素进行升序排列,然后输出前k个即可
具体实现
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
int n = 0;
int k = 0;
while(cin >> n >> k) {//输入第一行的数(数组大小和要求个数)
vector<int> nums;//用一个名为nums的数组来保存实际数据行
for (int i = 0; i < n; i++) {
int tmp;
cin >> tmp;
nums.push_back(tmp);
}
sort(nums.begin(),nums.end());//快排处理
for (int i = 0; i < k;i++)
cout << nums[ i ] << ' ';
cout << endl;
}
return 0;
}