统计数组中各个元素出现的次数,并按照次数从大到小排序
2017-09-25 20:31
489 查看
背景
测试工程师面试的一道笔试题,就是标题中的内容,使用自己熟悉的语言即可。博主在当时就想到了好几种实现方式,没怎么复习,很多细节没记清
最后花使用了最傻的冒泡排序的方式完成,所以写这篇博客记录一下
python实现
定义一个数组:a = [1, 2, 3, 4, 2, 1, 4, 1, 1]
实现方式一(内置函数 Counter)
from collections import Counter print(Counter(a))
实现方式二(内置函数 sorted)
首先转换为字典,转换为“元素-出现次数”对:b = {} for i in a: b[i] = a.count(i)
m = sorted(b.items(),key=lambda x:x[1],reverse=True) print m
实现方式三(冒泡排序)
c = b.items() # b为方法二中的字典,转换为列表 for j in range(len(b)): for i in range(len(b)-j-1): if c[i][1] < c[i+1][1]: c[i] ,c[i+1] = c[i+1],c[i] print c
Linux命令实现
定义一个数组array=(1 2 4 3 5 3 5)
取出数组所有元素:
然后将元素间空格转换为换行符:
然后先使用sort进行排序(uniq -c 只能对相邻的数据进行统计):
再使用uniq进行统计:
最后对统计后的数据进行排序:
完整命令
echo ${array[*]}|tr " " "\n"|sort|uniq -c|sort -r #-r表示逆序
最终效果如下:
相关文章推荐
- python统计数组元素出现次数以及排序
- 一个一维整形数组,若干个数字,统计数组中不同的数字出现的次数,并按照出现频率从小到大排序输出,相同频率按数字大小排序输出
- python 统计数组中元素出现次数并进行排序
- Swift按照数组元素出现的次数及大小排序
- Swift按照数组元素出现的次数及大小排序
- python 统计数组中元素出现次数并进行排序的实例
- Swift按照数组元素出现的次数及大小排序
- 统计数组中各个元素出现的次数,并按照次数从大到小排序
- (4)统计一个数字,在排序数组中出现的次数
- 统计数组 arr 中值等于 item 的元素出现的次数
- 《剑指Offer》面试题:统计一个数字在排序数组中出现的次数
- 统计一个数字在排序数组中出现的次数
- 统计数组中元素出现的次数——Java小程序
- 统计数组中不同元素出现的次数(时间复杂度O(n),空间复杂度o(1))
- IOS菜鸟的所感所思(十一)——统计文本中单词出现的次数并按照次数高低排序
- 在有序数组中,统计某一元素出现的次数
- PHP实现统计一个数字在排序数组中出现次数的方法
- 二分查找的变形,统计数字在排序数组出现的次数
- 统计一个数字在排序数组中出现的次数。
- 统计一个整数在排序(升序)整数数组中出现的次数