描述
输入n个整数,找出其中最小的k个整数并按升序输出
本题有多组输入样例
数据范围:1≤n≤1000 ,输入的整数满足1≤val≤10000
输入描述:
第一行输入两个整数n和k
第二行输入一个整数数组
输出描述:
从小到大输出最小的k个整数,用空格分开。
示例1
输入:
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) {
//用一个num数组来保存第二行
vector<int> num;
for (int i = 0; i < n; i++) {
int tmp;
cin >> tmp;
num.push_back(tmp);
}
//快排处理
sort(num.begin(), num.end());
//输出数字,还有空格
for (int i = 0; i < k; i++)
cout << num[i] << ' ';
cout << endl;
}
return 0;
}
找出最小k个整数并排序
该程序读入n个整数,使用快速排序算法找出其中最小的k个,并按升序输出。输入包括两行,第一行是n和k,第二行是n个整数。程序最后对排序后的数组打印出前k个元素。
7238

被折叠的 条评论
为什么被折叠?



