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

156 阅读1分钟

题目

输入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;
}