寻找数组中出现次数超过一半的数字

/*
 * 数组中出现次数超过一半的数字.cpp
 *
 *  Created on: 2018年4月20日
 *      Author: soyo
 */
#include<iostream>
using namespace std;
int MoreNum(int *p,int length)
{
    if(p==NULL)
        return NULL;
    int result=p[0];
    int time=1;
    for(int i=1;i<length;i++)
    {
        if(time==0)
        {
            result=p[i];
            time=1;
        }
        else if(p[i]==result)
             time++;
        else
            time--;
    }
    return result;
}

int main()
{
    int a[]={1,5,3,5,8,5,5,5,7,5,8};
    int num;
    num=MoreNum(a,9);
    cout<<"数组中出现次数超过一半的数字为:"<<num<<endl;
    int b[]={8,7,3,54};
    int *p;
    p=b;
    cout<<p[3]<<endl;

}

结果:

数组中出现次数超过一半的数字为:5
54

 

posted @ 2018-04-20 20:33  soyosuyang  阅读(122)  评论(0编辑  收藏  举报