gpt4 book ai didi

c - 根据每个元素的频率对数组元素进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:40 26 4
gpt4 key购买 nike

我正在寻找一种 C 语言算法,它按频率(从最低到最高)对数组元素进行排序。例如:

array[10] = {1, 1, 1, 5, 2, 3, 3, 3, 3, 4}; //initial array

array[10] = {5, 4, 2, 1, 1, 1, 3, 3, 3, 3}; //post-sorting array

具有相似频率的元素(上例中的 5、4 和 2)的顺序无关紧要,只要它们与其他具有相同频率的元素组合在一起即可。

我不知道该怎么做,我看到了 THIS ,但是它是在 matlab(我不知道)而不是 C 中,并且它在很大程度上依赖于库函数,这是我不想做的事情。

最佳答案

您可以创建一个包含元素和元素频率的结构,并且只需增加频率字段即可在将元素插入数组时避免重复。

例如:

typedef struct elem{
int value;
int freq;
} element;

然后按频率对数组 element[N] 进行排序,可能使用像 qsort

这样的算法

关于c - 根据每个元素的频率对数组元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36816566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com