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

139 阅读1分钟

描述

输入n个整数,找出其中最小的k个整数并按升序输出

本题有多组输入样例

数据范围:1 \le n \le 1000 \1≤n≤1000  ,输入的整数满足 1 \le val \le 10000 \1≤val≤10000 

题源:输入n个整数,输出其中最小的k个_牛客题霸_牛客网 (nowcoder.com)

输入描述:

第一行输入两个整数n和k
第二行输入一个整数数组

输出描述:

从小到大输出最小的k个整数,用空格分开。

示例1

输入:

5 2
1 3 5 7 2

输出:

1 2

Java:

import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int k = sc.nextInt();
        int num[] = new int[N];
        for(int i = 0; i < N;i++){
            num[i] = sc.nextInt();
        }
        Arrays.sort(num);
       for (int i = 0;i < k ; i++){
           System.out.print(num[i]+" ");
       }
    }

}

c++:

#include <iostream>
#include <string>
using namespace std;
#include <algorithm>

int main(){	
	int N, k = 0;
	cin >> N >> k;
	int num[1001];
	for( int i = 0; i < N; i++) {
		cin >> num[i];
	}
	sort(num , num + N);
	for( int i = 0; i < k; i++ ) {
		cout << num[i]<<" ";
	}
}

时间复杂度:O(nlogn),快排 空间复杂度:O(1)