首页 > 其他 > 详细

UVA 11462-Age sort

时间:2016-06-16 21:31:11      阅读:230      评论:0      收藏:0      [点我收藏+]

题意:


  按年龄从小到大排序.

 

代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <fstream>
#include <cmath>
#include <ctime>
#include <cstdlib>
#include <algorithm>
#include <set>
#include <map>
#include <list>
#include <stack>
#include <queue>
#include <iterator>
#include <vector>

using namespace std;

#define LL long long
#define INF 0x3f3f3f3f
#define MOD 1000000007
#define MAXN 10000010
#define MAXM 1000010

const int MAXN = 2000000+5;
int a[MAXN];


// 方法一:快速排序

int cmp(const void *a, const void *b)
{
    return *(int *)a - *(int *)b;
}

void qsort(int b[], int l, int r)
{
    int i, j, x;
    i = l;
    j = r;
    x = b[i];

    while(i != j)
    {
        while(b[j]>x&&j>i)
            j--;
        if(i < j)
        {
            b[i] = b[j];
            i++;
        }
        while(b[i]<x&&j>i)
            i++;
        if(i < j)
        {
            b[j] = b[i];
            j--;
        }
    }

    b[i] = x;
    qsort(b, l, j-1);
    qsort(b, i+1, r);
}

int main()
{
    int n;
    while(scanf("%d", &n)==1&&n)
    {
        int i;
        for(i = 0; i < n; i++ )
            scanf("%d", &a[i]);

        qsort(a, n, sizeof(a[0]), cmp);

        for(i = 0; i < n; i++ )
        {
            if(i != 0)
                printf(" ");
            printf("%d", a[i]);
        }

        printf("\n");
    }

    return 0;
}







//方法二:计数排序

int main()
{
    int n;
    int x;
    int i, j;
    while(scanf("%d", &n)==1&&n)
    {
        int flag = 0;
        memset(a, 0, sizeof(a));
        for(i = 1; i <= n; i++ )
        {
            scanf("%d", &x);
            a[x]++;
        }
        for(i = 1; i <= 100; i++ )  //年龄:1-100岁
            for(j = 1; j <= a[i]; j++ ) //每个年龄的人数(年龄从1岁开始)
            {
                if(flag)
                    printf(" ");
                flag = 1;
                printf("%d", i);
            }
        printf("\n");
    }
    return 0;
}

 

UVA 11462-Age sort

原文:http://www.cnblogs.com/xl1164191281/p/5592126.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!