标签:算法
【问题】
请编写以下函数 int MajorityElement(int array[],int n);
该函数返回数组array中的多数元素。多数元素是指在占绝对多数(至少51%)的一个值。如果多数元素不存在,那么返回常量NoMajorityElement,该函数必须满足下面的条件:3. 不能改变数组中的任何元素的值。
【代码】
#include <stdio.h>
void MajorityElement(int array[], int n)
{
int majority, i, count;
majority = array[0];
count = 1;
for(i = 1; i < n; i++){
if(majority != array[i]){
if(count == 0){
majority = array[i];
count++;
}else{
count--;
}
}else{
count++;
}
}
if(count > 0)
printf("MajorityElement: %d\n", majority);
else
printf("NoMajorityElement\n");
}
main()
{
int array[5] = {1, 2, 1, 2, 3};
MajorityElement(array, 5);
}C程序设计的抽象思维-算法分析-大多数元素,布布扣,bubuko.com
标签:算法
原文地址:http://blog.csdn.net/jjjcainiao/article/details/26173481