算法按频率高低来进行排序

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

以上是关于算法按频率高低来进行排序的主要内容,如果未能解决你的问题,请参考以下文章

python排序问题,给出一个txt文件,怎样按分数高低进行排序?

按 C 中元素出现频率的降序对数组进行排序

使用 Linq 按名称频率对列表进行排序

首先按频率对字符串中的字符进行排序,然后按字母顺序排序

在结构中按频率对数组中的字母进行排序

在python中,如何按元素的频率对列表进行排序