求解一个序列中出现次数最多的元素问题贪心法C语言
时间: 2023-08-08 14:12:47 浏览: 181
Python找出列表中出现次数最多的元素
以下是使用贪心算法求解一个序列中出现次数最多的元素问题的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_N 100
int main() {
int n, i, max_count = 0, max_num = 0;
int a[MAX_N], count[MAX_N];
// 读入序列
printf("请输入序列的长度n:");
scanf("%d", &n);
printf("请输入序列a:");
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 统计每个元素的出现次数
memset(count, 0, sizeof(count));
for (i = 0; i < n; i++) {
count[a[i]]++;
}
// 找到出现次数最多的元素
for (i = 0; i < n; i++) {
if (count[a[i]] > max_count) {
max_count = count[a[i]];
max_num = a[i];
}
}
// 输出结果
printf("出现次数最多的元素是%d,它出现了%d次\n", max_num, max_count);
return 0;
}
```
该代码首先读入序列,然后使用一个数组count来统计每个元素的出现次数。接着,遍历count数组,找到出现次数最多的元素。最后输出结果。时间复杂度为O(n)。
阅读全文