1.众数
#include<iostream>
#include<algorithm>
#include<stdlib.h>
using namespace std;
void get(int arr[],int len,int &left,int &right)
{
int mid=len/2;
for(left=0;left<len;left++)
if(arr[left]==arr[mid])
break;
for(right=left+1;right<len;right++)
if(arr[right]!=arr[mid])
break;
}
void getval(int arr[],int len,int &val,int &count)
{
int left,right;
get(arr,len,left,right);
int temp=arr[len/2];
int num=right-left;
if(num>count)
{
count=num;
val=temp;
}
if(left+1>count)
getval(arr,left+1,val,count);
if(len-right>count)
getval(arr,len-right,val,count);
}
int main()
{
int arr[]={1,2,3,3,3,4,9,6,7,7,7,7,9,5,10,10,12,
12,14,14,15,14,31,23,5,23,4,43,3,2,3,4
,3,2,1,1,34,2,3,2,2,2,22,0,2,12,5,5,5,
5,5,5,5,6,5};
int len=sizeof(arr)/sizeof(int);
sort(arr,arr+len);
int val,count=0;
for(int i=0;i<len;i++)
cout<<arr[i]<<" ";
getval(arr,len,val,count);
cout<<endl<<"众数:"<<val<<endl<<"重数:"<<count;
return 0;
}