zoukankan      html  css  js  c++  java
  • 输出前k大的数

    总时间限制: 10000ms单个测试点时间限制:1000ms内存限制:65536kB(noi)
    描述

    给定一个数组,统计前k大的数并且把这k个数从大到小输出。

    输入
    第一行包含一个整数n,表示数组的大小。n < 100000。
    第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。
    第三行包含一个整数k。k < n。
    输出
    从大到小输出前k大的数,每个数一行。
    样例输入
    10
    4 5 6 9 8 7 1 2 3 0
    5
    样例输出
    9
    8
    7
    6
    5
    代码:
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int a[100010];
    void qsort(int l,int r)
    {
    int i=l,j=r,mid=a[(l+r)/2];
    do{
    while (a[i]>mid) i++;
    while (a[j]<mid) j--;
    if (i<=j) 
    {
    int tmp=a[i];
    a[i]=a[j];
    a[j]=tmp;
    i++;
    j--;
    }
    }while (i<=j);
    if (i<r) qsort(i,r);
    if (l<j) qsort(l,j);
    }
    int main()
    {
        int n,k;
    	scanf("%d",&n);
    	for(int i=0;i<n;i++)
    		scanf("%d",&a[i]);
    	scanf("%d",&k);
    	qsort(0,n-1);
    	for (int j=0;j<k;j++)
    		printf("%d
    ",a[j]);
    	return 0;
    }
    当时也是懵了
  • 相关阅读:
    171. Excel Sheet Column Number (Easy)
    349. Intersection of Two Arrays (Easy)
    453. Minimum Moves to Equal Array Elements (Easy)
    657. Judge Route Circle (Easy)
    CSS笔记
    保存页面状态
    UI开发总结
    ubuntu 下配置munin
    反向代理配置
    JavaScript 高级程序设计第二版
  • 原文地址:https://www.cnblogs.com/suishiguang/p/5742247.html
Copyright © 2011-2022 走看看