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

    7617:输出前k大的数

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

    给定一个数组,统计前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<string>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    int a[10000005],b[10006];
    void msort(int s,int t)
    {
        int mid=a[(s+t)/2];
        int i=s,j=t;
        do
        {
            while(a[i]>mid)i++;
            while(a[j]<mid)j--;
            if(i<=j)
            {
                swap(a[i],a[j]);i++;j--;
            }
        }while(i<=j);
        if(s<j)msort(s,j);
        if(i<t)msort(i,t);
    }
    int main()
    {
        int n,k;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        scanf("%d",&k);
        msort(1,n);
        for(int i=1;i<=k;i++)
        {
            printf("%d
    ",a[i]);
        }
        return 0;
    }
  • 相关阅读:
    03- CSS进阶
    03-requests使用
    04-scrapy简介
    05-scrapy基本使用
    06-CrawlSpider模板
    07-Request、Response
    03-inotify+rsync sersync lsyncd实时同步服务
    markdown中折叠代码
    02-java基础语法
    01-java简介及环境配置
  • 原文地址:https://www.cnblogs.com/sssy/p/6624192.html
Copyright © 2011-2022 走看看