我是靠谱客的博主 野性金针菇,最近开发中收集的这篇文章主要介绍找出出现次数超过数组一半元素的数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

开始时k存储数组中的第一个数,j为0,如果数组出现的数于k相等,则j加1,否则就减1,如果j为0,就把当前数组中的数赋给k
因为指定的数出现的次数大于数组长度的一半,所有j++与j–相抵消之后,最后j的值是大于等于1的,k中存的那个数就是出现最多的那个数。

下面这个算法只适合数组中数组中某个数的出现次数超过数组长度一半的数组
int Search(int A[],int len)
{
if(NULL==A || len<=0)
{
return-1;
}

int k, j=0;
for(int i=0;i<len;++i)
{
if(j==0)
{
k=A[i];
}
if(k==A[i])
{
++j;
}else
{
--j;
}
}

return k;
}

最后

以上就是野性金针菇为你收集整理的找出出现次数超过数组一半元素的数的全部内容,希望文章能够帮你解决找出出现次数超过数组一半元素的数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部