zoukankan      html  css  js  c++  java
  • 快速排序法经典题型

    排序练习——找出前m大的数字

    Time Limit: 1000MS Memory limit: 65536K

    题目描述

    给定n个数字,找出前m大的数字。
     

    输入

     多组输入,每组输入格式如下。
    第一行包含两个整数n m。(n<=100000, m>0)
    第二行包含n个正整数。

    输出

     输出前m大的数字,若m>n输出ERROR。每组输出占一行。

    示例输入

    2 1
    4 3
    4 2
    1 2 898989 23

    示例输出

    4
    898989 23

    提示

     1 #include<stdio.h>
     2 void qsort(int a[],int l,int r)
     3 {
     4     int x=a[l],i=l,j=r;
     5     if(l>=r)return ;
     6     while(i<j)
     7     {
     8         while(i<j&&a[j]>=x)j--;
     9         a[i]=a[j];
    10         while(i<j&&a[i]<=x)i++;
    11         a[j]=a[i];
    12     }
    13     a[i]=x;
    14     qsort(a,l,i-1);
    15     qsort(a,i+1,r);
    16 }
    17 int main()
    18 {
    19     int m,n;
    20     while(scanf("%d%d",&m,&n)!=EOF)
    21     {
    22         int f[100005],i;
    23         for(i=0;i<=m-1;i++)
    24             scanf("%d",&f[i]);
    25         qsort(f,0,m-1);
    26         if(n>m)
    27         {
    28             printf("ERROR
    ");
    29             continue;
    30         }
    31         for(i=m-1;i>=m-n;i--)
    32         {
    33             if(i==m-1)printf("%d",f[i]);
    34             else printf(" %d",f[i]);
    35         }
    36         printf("
    ");
    37     }
    38     return 0;
    39 }
    View Code
  • 相关阅读:
    读《持续交付2.0》
    “兼职”运维的常用命令
    技术管理者怎样跳出“泥潭”
    使用RabbitMQ实现接口补偿
    dotNET Core 中怎样操作 AD?
    dotNET Core实现分布式环境下的流水号唯一
    Git 远程仓库
    分之管理
    git 基本操作----git diff
    git 基本操作----git reset、log
  • 原文地址:https://www.cnblogs.com/kuangdaoyizhimei/p/3191760.html
Copyright © 2011-2022 走看看