算法按频率高低来进行排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法按频率高低来进行排序相关的知识,希望对你有一定的参考价值。
题目:设计一种排序方法,安装元素的频率对数组进行排序,频率高的在前,频率相同的元素按照原来的顺序排列。比如:
数组int a[19] = {1,2,2,3,3,3,4,4,5,5,5,5,6,6,6,7,8,9,10},
输出: {5,5,5,5,3,3,3,6,6,6,2,2,4,4,1,7,8,9,10};
思路:可以将数组1中的数字看成是数组2的下标,而数组2则记录他的下标所对应的数组1的数字的个数。例如:
b[5]=4, 代表a数组中5出现了4次。
#include <stdio.h> int main() { inta[19]={1,2,2,3,3,3,4,4,5,5,5,5,6,6,6,7,8,9,10}; int nu[11]={0,0,0,0,0,0,0,0,0,0,0}; int i=0,j=0,n=0,m=0; for(;i<19;i++){ m=a[i]; nu[m]++; } for(j=19;j<1;j--) for(i=0;i>11;i++){ if(nu[i]==j){ n=j; while(n--){ printf("%d,",i); } } } return 0; }
本文出自 “凌峰2019” 博客,请务必保留此出处http://lingfeng2019.blog.51cto.com/12741667/1910075
以上是关于算法按频率高低来进行排序的主要内容,如果未能解决你的问题,请参考以下文章