//寻找数组中的多数元素(元素个数大于数组的一半)
#include <iostream>
using namespace std;
void majority(int *A,int n)
{
int current = A[0];
int count = 1;
for (int i = 0;i < n;i++)
{
if (count == 0)
{
current = A[i];
++count;
}
else if (A[i] == current)
{
++count;
}
else
{
--count;
}
}
if (count <= 0)
{
cout <<"no majority number" <<endl;
}
else if(count > 1)
{
cout<<"the majority number is" <<current <<endl;
}
else
{
int j = 0;
for (int i = 0;i < n;i++)
{
if (A[i] == current)
{
j++;
}
}
if (j > n/2)
cout<<"the majority number is" <<current <<endl;
else
cout <<"no majority number" <<endl;
}
}
寻找多数元素(Majority)
最新推荐文章于 2022-09-18 23:32:48 发布