数据结构PTA 案例7-1.4 统计工龄

案例7-1.4 统计工龄

  • 题目
  • 解法:基于数组的桶排序

题目

给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。

输入格式:
输入首先给出正整数N(≤10​5),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0, 50]。

输出格式:
按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行。如果人数为0则不输出该项。

输入样例:

8
10 2 0 5 7 2 5 2

输出样例:

0:1
2:3
5:2
7:1
10:1

解法:基于数组的桶排序

思路

因为员工年龄都是整数,所以可以用数组下标作为“桶”,需要0~50,这51个桶。数组的值就是桶里员工的数量。最后输出的时候做一个判断,值为0不输出,值不为零就按要求输出。
实现

#include


int main()
{
    freopen("yhq.txt", "r", stdin);
    int N;
    scanf("%d", &N);
    int P[51]={0};
    //printf("%d", P[50]);
    int tmp;
    for(int i=0; i<N; i++)
    {
        scanf("%d", &tmp);
        P[tmp]++;
    }

    for(int i=0; i<51; i++)
    {
        if(P[i]!=0)
            printf("%d:%d\n", i, P[i]);
    }

}

你可能感兴趣的:(拼题A,数据结构,算法)