c语言统计数组中重复元素和重复次数
时间: 2023-05-08 07:55:45 浏览: 1028
C语言查找数组里数字重复次数的方法
在C语言中,统计数组中重复元素和重复次数可以采用两种方法:暴力查找和哈希表查找。
暴力查找方法是遍历整个数组,对每个元素都进行一次遍历,判断该元素是否与数组中其它元素重复。如果重复,则将一个计数器加一,表示重复次数。该方法效率较低,时间复杂度为O(n²),当数组元素过多时,效率会极低。
哈希表查找方法是使用哈希表数据结构来实现。首先建立一个哈希表,将数组中的每个元素存入哈希表,同时记录每个元素在哈希表中出现的次数。如此便可以快速查找到数组中的所有重复元素及其出现次数。该方法相较于暴力查找方法,时间复杂度优化到O(n),效率更高。
以下是使用哈希表查找实现的代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
int main()
{
int arr[SIZE], count[SIZE], i, j, k;
int len = sizeof(arr) / sizeof(arr[0]);
// 随机生成len个1~100的整数
srand((unsigned)time(NULL));
for (i = 0; i < len; i++) {
arr[i] = rand() % 100 + 1;
}
// 初始化count数组为0
for (i = 0; i < SIZE; i++) {
count[i] = 0;
}
// 哈希表查找
for (i = 0; i < len; i++) {
count[arr[i]]++;
}
for (j = 0; j < SIZE; j++) {
if (count[j] > 1) {
printf("数字 %d 重复 %d 次\n", j, count[j]);
}
}
return 0;
}
```
阅读全文