c语言 编写一个函数,功能是寻找数组中出现次数最多的元素
时间: 2024-03-08 21:51:31 浏览: 71
C语言程序设计-编写函数fun将一个数组中的值按逆序存放,并在main()函数中输出;
4星 · 用户满意度95%
好的,这里提供一种使用哈希表来寻找数组中出现次数最多的元素的 C 语言函数:
```c
int find_most_frequent_element(int arr[], int len) {
// 初始化一个哈希表
int max_count = 0, max_element = arr[0];
int hash_table[1000] = {0}; // 假设数组元素非负且小于1000
// 统计每个元素出现的次数
for (int i = 0; i < len; i++) {
hash_table[arr[i]]++;
// 更新出现次数最多的元素
if (hash_table[arr[i]] > max_count) {
max_count = hash_table[arr[i]];
max_element = arr[i];
}
}
return max_element;
}
```
这个函数同样接收一个整数数组 `arr` 和它的长度 `len`。它会使用一个哈希表来统计每个元素出现的次数。遍历整个数组后,函数会返回出现次数最多的元素。
这个函数的时间复杂度为 O(n),比前一个函数更高效。但是需要注意的是,哈希表的大小需要根据数组元素的取值范围来确定,如果数组元素的取值范围比较大,可能会导致哈希表过大,从而影响程序的性能。
阅读全文