在C++中求数组中出现频率最高的数mode。
即:众数(Mode)统计学名词,在统计分布上具有明显集中趋势点的数值,代表数据的一般水平(众数可以不存在或多于一个)。 修正定义:是一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。用M表示。 理性理解:简单的说,就是一组数据中占比例最多的那个数。
详细如下:
#include<iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v1;
int a[]={1,5,2,1,4,7,5,8,9,6,3,2,5,4,5,1,2,6,3,9,8,5,1,4,2,5,7,8,4,5,6};
int size=sizeof(a)/sizeof(a[0]);
for(int i=0;i<size;i++)
v1.push_back(a[i]);
vector< int > histogram(size,0);
vector< int >::iterator it = v1.begin();
while(it != v1.end()) histogram[*it++]++;
int mode = max_element(histogram.begin(),histogram.end()) - histogram.begin();
std::cout << "mode = " << mode << std::endl;
system("pause");
return 0;
}
结果显示: