#include <stdio.h> int FindMajorElement(int a[], int size) { int major; int num=0; int i; for(i=0; i < size; i++) { if(num == 0) major=a[i]; else if( major == a[i] ) num++; else num--; } num=0; for(i=0; i< size; i++) { if( a[i] == major) num++; } if( num>size/2) return major; else return -1; } int main() { int a[]={1,3,2,4,4,4,4,4}; printf("%d\n", FindMajorElement(a,sizeof(a)/sizeof(int))); return 0; }
找到A中最多的一个元素,然后判断其是否为中位数、。