zoukankan      html  css  js  c++  java
  • hdu 1425:sort

    Problem Description

    给你n个整数,请按从大到小的顺序输出其中前m大的数。
     
    Input
    每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
     
    Output
    对每组测试数据按从大到小的顺序输出前m大的数。
     
    Sample Input
    5 3 3 -35 92 213 -644
     
    Sample Output
    213 92 3
     
    思路:用快排函数,快排函数的手写函数有点子烦啊,这里千万要注意用cin/cout就超时!!!!!!
    #include<cstdio>
    #include<iostream>
    #include<functional>
    #include<algorithm>
    using namespace std;
    int a[1000005];
    int cmp(const void* a, const void* b)
    {
        return *(int*)b - *(int*)a;
    }
    int main()
    {
        int n, k; 
        while (~scanf("%d%d", &n, &k)){
            for (int i = 0; i < n; i++)
                scanf("%d", &a[i]);
                //cin >> a[i];
    
            qsort(a, n, sizeof(int), cmp);
            //sort(a, a + n, greater<int>());
            for (int i = 0; i < k; i++)
            {
                if (i != k - 1)
                    printf("%d ", a[i]);
                else printf("%d
    ", a[i]);
                //if (i == 0)cout << a[i];
                //else cout << " " << a[i];
            }
            //cout << endl;
        }
        
        return 0;
    }

     注意一下快排函数中cmp的写法:

    • 结构体
    struct array 
    {
        int x;
        int y;
    }arr[1000];
    
    int cmp(const void *a , const void *b) 
    { 
        return ((array *)a)->x - ((array *)b)->x;
    } 
    
    qsort(arr,1000,sizeof(arr[0]),cmp); 
  • 相关阅读:
    CF666E. Forensic Examination
    bzoj1396 识别子串
    bzoj2839 集合计数
    unknown
    Hibernate中一级缓存和二级缓存
    亲, 我们来再重申一遍"=="和"equals的区别
    BigDecimal类
    序列化详解
    利用简单的参数传递来实现单条查询的easyui-datagrid
    Oracl 动态执行表不可访问,本会话的自动统计被禁止
  • 原文地址:https://www.cnblogs.com/zengguoqiang/p/8819183.html
Copyright © 2011-2022 走看看