2019中兴笔试算法题之工资按频次排序问题 python C语言

这篇博客介绍了如何解决一个工资按频次排序的问题,给出了Python和C语言的实现方法。在Python中,通过使用字典存储工资及其出现次数,然后对字典进行排序。而在C语言中,使用了结构体存储数字及其频率,通过遍历结构体找到最小频率并输出相应数字。
摘要由CSDN通过智能技术生成

**

问题描述

**
给N名员工的工资清单,按照工资分布的人数降序排序,如果有两个工资的人的数目一致(大概意思就是假设3000工资有3个人,5000也是三个人),就按照工资在给定清单的顺序里面排序。
输入
4,1,4,4,2,1,2,3,1,9,1,2,8,7,5,6,3,4,3,6
输出
4,4,4,4,1,1,1,1,2,2,2,3,3,3,6,6,9,8,7,5

python实现:
思路:
1、输入的数据以列表形式存储,去除空格
2、用字典来存储列表数据,列表数据为键,出现次数为值
3、遍历列表,该项若有,则值加1,;若无,则添加该项,值为1
4、对字典的值排序,输出为二维列表的形式。
5、按字典排序后的列表进行输出。

in_nums = input("输入数据")
in_nums = in_nums.split(' ')
temp = {}
out_nums = []
for nums in in_nums:
    if nums in temp.keys():
        temp[nums] += 1
    else:
        temp[nums] = 1
aa = sorted(temp.items(), key=lambda item: item[0])
for i in aa:
    for j in range(int(i[1])):
        out_nums.append(int(i[0]))
print(out_nums)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值