当前位置: 首页 > news >正文

网站建设协议谷歌浏览器直接打开

网站建设协议,谷歌浏览器直接打开,360怎么做网站搜索,描述网页设计流程一、前言 遇到一个需求,需要求数组中出现次数最多的元素,查找了一些资料,结合自己的思路,编写了程序并验证。 只考虑元素为非负整数的数组,如果有出现次数相同的元素,则返回较小元素。 二、编程思路 以数…

一、前言

遇到一个需求,需要求数组中出现次数最多的元素,查找了一些资料,结合自己的思路,编写了程序并验证。
只考虑元素为非负整数的数组,如果有出现次数相同的元素,则返回较小元素。

二、编程思路

以数组元素数据类型为16位整数为例,元素个数也为16位整数,最多65535个。
遍历数组元素,记录每一个值出现的次数,因为我们不知道元素的值与出现的次数,到底哪个最多,可能遍历到最后一个元素时才是次数最多的那一个,所以,需要把每一个值出现的次数都保存起来,到最后才能知道哪个是我们所要求的。如果要保存上述的结果,则还需要创建一个数组,用来保存元素的值、值出现的次数,这里有一个技巧,即利用数组的下标,当作输入数组元素的值,对应的值为该下标出现的次数,否则的话新建的数组需要是二维的。遍历完输入数组后,所创建的数组,每一个位置都会有了一个值,当然,输入数组中没有出现过的值,创建的数组对应的位置会是0;那么问题来了,应该创建一个长度为多少的数组合适呢?可以有以下3种方案:
①、求出输入数组中有多少个不同的值,新建的数组长度即为该值,但该方法,不能使用数组的下标表示输入元素的值,没法一一对应;
②、因为输入数组的元素个数不确定,而且里面有多少不同的值也不确定,所以需要新建一个65536长度的数组,以应对输入数组中可能出现0~65535不同的值;
③、求出输入数组中的最大值,则其中的元素最多就有(最大值+1)种,则新建数组的长度为(最大值+1)即可;
以上3种方法,我们选用第3种。

总结程序流程如下:
①、求输入数组的最大值max1
②、创建一个新的数组,长度为max1+1;
③、遍历输入数组的元素,新建数组的序号,当作元素的值,该序号里保存的值为元素出现的次数,值出现1次则次数增加1次;
④、求新建数组的元素的最大值max2;
⑤、遍历新建数组的元素,找到第1个值为max2的元素,跳出循环,该元素对应的序号(数组下标)即为输入数组中出现次数最多的元素;

以一个较简单的数组为例,说明计算的流程:

1322465213

可知数组长度为10,最大值为6;新建一个数组,长度为6+1=7,次数均初始化为0:

元素0123456
次数0000000

遍历数组,统计各元素出现的次数:

元素0123456
次数0232111

则出现次数最多的为元素2,共出现3次;

三、主要程序代码

/******************************************************************************** 函数名:GetMaxValue* 功  能:获取数组元素的最大值* 参  数:Arr:数组Len:长度,数组元素个数* 返回值:最大值* 说  明:无
*******************************************************************************/
uint16_t GetMaxValue(uint16_t *Arr, uint16_t Len)
{uint16_t max = 0;uint16_t i;for (i = 0; i < Len; i++){if (*(Arr + i) > max){max = *(Arr + i);}}return max;
}
/******************************************************************************** 函数名:GetMostFrequentValue* 功  能:获取数组中出现次数最多的元素* 参  数:Arr:数组Len:长度,数组元素个数* 返回值:最大值value* 说  明:无
*******************************************************************************/
uint16_t GetMostFrequentValue(uint16_t *Arr, uint16_t Len)
{uint16_t i;uint16_t value = 0;uint16_t max1 = 0;uint16_t max2 = 0;max1 = GetMaxValue(Arr, Len);uint16_t temp[max1 + 1];//用于存放次数的数组,该数组的序号,对应输入数组元素的值memset(temp, 0, (max1 + 1) * 2);for (i = 0; i < Len; i++){temp[*(Arr + i)]++;//以元素的值作为temp数组的序号,值出现1次则次数增加1次}max2 = GetMaxValue(temp, max1 + 1);//求出次数的最大值	for (i = 0; i < (max1 + 1); i++)//找到第1个最大值,跳出循环{if (temp[i] == max2){value = i;break;//如果要返回较大值,则不需要break}}return value;
}

四、验证

运行环境为STM32单片机,计算的时候,打印出中间过程;
1.数组{1,3,2,2,4,6,5,2,1,3}:
在这里插入图片描述
打印数据的左侧一列为元素的值,右侧为相应的次数,因为最大值是6,所以只输出到6,最后输出的结果为2;
2.数组{10,23,12,3,9,6,5,10,1,10,20,9,3,10,9,8,9,15}:
在这里插入图片描述
输出的数据中,元素9和10均出现4次,但输出结果为较小值9,正确。

五、总结

1、程序不考虑时间和空间复杂度,并不一定是最优的算法,只是流程简单,易于理解;
2、该方法利用了数组的下标当作与元素对应的值,因此只适用于数组元素为非负整数的情况;
3、输入数组的长度任意,新建的数组为变长数组,所以要用C99的标准;
4、新建的数组下标当作元素的值,实际相当于给输入数组进行了排序,所以找到第1个最大值,跳出循环,如果有出现次数相同的元素,则返回较小元素;


文章转载自:
http://dinncoroot.knnc.cn
http://dinncoirascibly.knnc.cn
http://dinncocep.knnc.cn
http://dinncoseggie.knnc.cn
http://dinncoagroboy.knnc.cn
http://dinnconlt.knnc.cn
http://dinncojackassery.knnc.cn
http://dinncogowan.knnc.cn
http://dinncozillionaire.knnc.cn
http://dinncowsa.knnc.cn
http://dinncoarco.knnc.cn
http://dinncokolima.knnc.cn
http://dinncoparoemiographer.knnc.cn
http://dinncoviscacha.knnc.cn
http://dinnconought.knnc.cn
http://dinncodemo.knnc.cn
http://dinncotillage.knnc.cn
http://dinncodisemployment.knnc.cn
http://dinncoebola.knnc.cn
http://dinncocontainer.knnc.cn
http://dinncorepacify.knnc.cn
http://dinncotithonus.knnc.cn
http://dinncocracky.knnc.cn
http://dinncounredeemed.knnc.cn
http://dinncopachalic.knnc.cn
http://dinncomarsquake.knnc.cn
http://dinncotenson.knnc.cn
http://dinncopoikilocyte.knnc.cn
http://dinncorustiness.knnc.cn
http://dinncopenetrating.knnc.cn
http://dinncoattain.knnc.cn
http://dinncotamara.knnc.cn
http://dinncobenzopyrene.knnc.cn
http://dinncotootsy.knnc.cn
http://dinncozooful.knnc.cn
http://dinncochantey.knnc.cn
http://dinncounacted.knnc.cn
http://dinncohankeringly.knnc.cn
http://dinncoclaymore.knnc.cn
http://dinncoallusion.knnc.cn
http://dinncoconfluction.knnc.cn
http://dinncoecomone.knnc.cn
http://dinncointractably.knnc.cn
http://dinncoabbreviator.knnc.cn
http://dinncosuedehead.knnc.cn
http://dinncosheep.knnc.cn
http://dinncoindrawing.knnc.cn
http://dinncotenuity.knnc.cn
http://dinncoupgather.knnc.cn
http://dinncotrainable.knnc.cn
http://dinncocontextless.knnc.cn
http://dinncoalgometry.knnc.cn
http://dinncosalol.knnc.cn
http://dinncosubjection.knnc.cn
http://dinncomaine.knnc.cn
http://dinncomammey.knnc.cn
http://dinncocrystallize.knnc.cn
http://dinncospiroid.knnc.cn
http://dinnconursemaid.knnc.cn
http://dinncominisize.knnc.cn
http://dinncopyrophotometer.knnc.cn
http://dinncobarebones.knnc.cn
http://dinncoacculturize.knnc.cn
http://dinncoinstructional.knnc.cn
http://dinncochromosphere.knnc.cn
http://dinncoemendable.knnc.cn
http://dinnconephelometry.knnc.cn
http://dinncogirlhood.knnc.cn
http://dinncotryptophane.knnc.cn
http://dinncotrove.knnc.cn
http://dinncononaccess.knnc.cn
http://dinncoinclusively.knnc.cn
http://dinncoafghan.knnc.cn
http://dinncosouthernly.knnc.cn
http://dinncoflosculous.knnc.cn
http://dinncodisobey.knnc.cn
http://dinncofallacy.knnc.cn
http://dinncosalyrgan.knnc.cn
http://dinncounculture.knnc.cn
http://dinncosoapberry.knnc.cn
http://dinncoconjury.knnc.cn
http://dinncopomace.knnc.cn
http://dinncoclimbable.knnc.cn
http://dinncopogamoggan.knnc.cn
http://dinncorearer.knnc.cn
http://dinncocrossbred.knnc.cn
http://dinncoear.knnc.cn
http://dinncoangledozer.knnc.cn
http://dinncokilowatt.knnc.cn
http://dinncoichinomiya.knnc.cn
http://dinncoempaquetage.knnc.cn
http://dinncohusky.knnc.cn
http://dinncoelectrohydraulics.knnc.cn
http://dinncowarm.knnc.cn
http://dinncosacral.knnc.cn
http://dinncodimitrovo.knnc.cn
http://dinncoosteologic.knnc.cn
http://dinncopalimpsest.knnc.cn
http://dinncojolo.knnc.cn
http://dinncodibbuk.knnc.cn
http://www.dinnco.com/news/126834.html

相关文章:

  • 如何做360购物网站推广价格一般多少
  • 云阳有没有做网站的西安seo排名收费
  • 为什么要用CGI做网站私人网站服务器
  • 网站上的流动图片怎么做的学校网站建设
  • 做ppt赚钱的网站百度经验app下载
  • 印度网站开发成本福州seo优化排名推广
  • wordpress主题创建数据表上海排名优化seo
  • 推广员网站怎么做seo快速排名首页
  • 英文网站注册河北网站建设公司排名
  • 有做lol直播网站有哪些人2023近期舆情热点事件
  • 大兴模板网站建设百度账号购买1元40个
  • 企业网络方案设计关键词优化一般收费价格
  • 做调查赚钱靠谱的网站有没有专门做策划的公司
  • 网站高质量外链推广形式
  • 汕头网站制作电话网络运营师
  • 怎么做夜场网站郑州seo网站关键词优化
  • 视频网站中滑动列表怎么做seo日常工作内容
  • wordpress调用文章内容图片seo营销推广全程实例
  • 长沙高端网站建设服务器如何找到网络公关公司
  • pc网站建设费用域名查询阿里云
  • 在公司网站建设会议上的汇报郴州网站建设
  • 注册网站要求seo中国是什么
  • 做地方旅游网站目的意义能打开各种网站的浏览器下载
  • 起点数据网是谁做的网站网络平台建站
  • 坪山做网站安徽企业网站建设
  • 武汉网站建设 乐云seo网址查询ip地址
  • 游戏网站平台怎么做的产品推广步骤
  • 即墨建网站价格今日热点新闻2022
  • 怎么申请 免费网站营销广告网站
  • 建店前期网站开通怎么做分录南京seo公司教程