lesson13-1顺序表找主元素(2013统考真题)
发布时间
阅读量:
阅读量
题目描述:王道P19 Q12
主元素:在数组中,若某一元素的出现次数达到k次,且数组总长度为n,当k大于n/2时,则该元素被定义为主元素。
思路:
首先将整个数组按照递增顺序进行排列,主元素必定位于中间位置。因此,只需检查处于n/2位置的元素是否满足条件,若该元素即为主元素,则判定为存在,否则则不存在。
代码:
int getMajority(int A[],int n){
bubbleSort(A,n);
int median=A[n/2];
int count=0;//记录中位数个数
for(int i=0;i<n;i++){
if(A[i]==median)
count++;
}
if(count>n/2)
return median;//中位数就是主元素
else
return -1;
}
void bubbleSort(int A[],int n){
int flag;
for(int i=n-1;i>=1;i--){
flag=0;
for(int j=1;j<=i;j++){
全部评论 (0)
还没有任何评论哟~
