利用暴力算法求众数问题c++代码
时间: 2024-10-25 13:18:31 浏览: 31
分治算法-求众数问题-python实现
暴力算法求解众数问题通常涉及到多次遍历数据集来寻找最常见的元素。在C++中,你可以使用一个哈希表(如`std::unordered_map`)来记录每个元素及其出现次数,然后遍历哈希表找到出现次数最多的元素作为众数。以下是简单的暴力算法示例:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
int findMode(const std::vector<int>& nums) {
std::unordered_map<int, int> count;
// 遍历数组,统计每个元素的频率
for (const auto& num : nums) {
++count[num];
}
int mode = -1;
int max_count = 0;
// 找到最大频次并返回其对应的元素
for (const auto& pair : count) {
if (pair.second > max_count) {
mode = pair.first;
max_count = pair.second;
}
}
return mode;
}
int main() {
std::vector<int> numbers = {1, 2, 2, 3, 4, 4, 4, 5};
int mode = findMode(numbers);
if (mode != -1) {
std::cout << "The mode of the array is: " << mode << std::endl;
} else {
std::cout << "No unique mode found." << std::endl;
}
return 0;
}
```
在这个例子中,`findMode`函数接收一个整数向量,然后计算出其中的众数,并在`main`函数中演示了如何使用它。
阅读全文