【发布时间】:2022-01-10 03:16:32
【问题描述】:
我的任务是在没有排序或哈希表的情况下找到数组中重复次数最多的元素。
这是我的伪代码:
#include <stdio.h>
int most_frequent(int *a, int n)
{
int i, j, max_element, count;
int maxcount = 0;
for(i = 0; i<n; i++)
{
count = 1;
for(j = i+1; j<n; j++)
{
if(a[j] == a[i])
{
count ++;
if(count > maxcount)
{
max_element = a[j];
}
}
}
}
return max_element;
}
问题是,它并不总是能正常工作,例如使用数组[1 1 2 2 3 3 3 4 4 4 4 5 5 7],结果将是5。
【问题讨论】:
-
最大计数永远不会改变
标签: arrays c algorithm frequency function-definition