指针与数组--求众数(出现次数最多的数)
时间: 2023-04-29 18:01:07 浏览: 175
指针与数组可以用来求一个数组中出现次数最多的数,具体方法如下:
1. 定义一个指针p,指向数组的第一个元素。
2. 定义一个变量max_count,表示出现次数最多的数的出现次数,初始值为。
3. 定义一个变量max_num,表示出现次数最多的数,初始值为数组的第一个元素。
4. 遍历数组,对于每个元素,统计它在数组中出现的次数,如果出现次数大于max_count,则更新max_count和max_num的值。
5. 遍历完数组后,max_num就是出现次数最多的数。
示例代码:
int find_mode(int *arr, int n) {
int *p = arr;
int max_count = ;
int max_num = *p;
for (int i = ; i < n; i++) {
int count = ;
for (int j = ; j < n; j++) {
if (*(p + j) == *(p + i)) {
count++;
}
}
if (count > max_count) {
max_count = count;
max_num = *(p + i);
}
}
return max_num;
}
注意:这种方法的时间复杂度为O(n^2),如果数组很大,效率会比较低。可以使用其他算法来优化。
阅读全文