#include<iostream>
using namespace std;
int Condidate(int a[],int n,int j);
int main()
{
int count=0;
int a[12]={1,1,1,1,1,1,2,2,2,2,2,2};
int c=Condidate(a,12,0);
for(int i=0;i<12;i++)
if(a[i]==c)
count++;
if(count>11/2)
cout<<"The majority in the array is "<<c<<endl;
else cout<<"no majority!";
return 0;
}
int Condidate(int a[],int n,int j)
{
int x=a[j];
int count=1;
while(j<n&&count>0)
if(a[++j]==x)
count++;
else count--;
if(j==n)return x;
else return Condidate(a,n,j+1);
}
(算法设计技巧与分析)Majority
最新推荐文章于 2023-01-18 18:40:44 发布