Scratch算法练习

来源 :电脑报 | 被引量 : 0次 | 上传用户:aboutt
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读

1. 为什么要做算法练习


  对于计算机来说,针对一个问题选择合适的解决方案的方法就是算法。算法可以是一系列的数学计算,也可以是一系列的操作步骤。总之,它存在的意义就是为了有针对性地解决问题。每个问题都有它独特的一面,正所谓算法没有最好的,只有最合适的。
  软件开发领域日新月异,编程语言会推陈出新,掌握的技术可能会淘汰,但算法却是软件不变的核心内容。因此,学好算法能够有效提高编程能力,以后也能更好地学习新语言。

2. 什么是众数


  找众数(Mode)是计算机程序设计入门的经典算法练习之一。在一组数据中出现次数最多的数值,叫众数(Mode),多用于统计目标没有明显次序(如非数值性资料)无法良好定义算术平均数和中位数的情况。
  例如:1,2,6,6,4,6的众数是6。
  有时众数在一组数中有好几个,如果有两个或两个以上数值出现次数都是最多的,那么这几个数值都是这组数据的众数。
  例如:1,2,2,3,3,4的众数是2和3。
  如果所有数值出现的次数都一样,那么这组数据没有众数。
  例如:1,1,2,2,3,3列表共6项3种数值,出现次数最多是2次,列表数字出现次数的平均数也为2,所以没有众数。
  现有一个长度为n的序列,请你编程求出它的众数。当然众数可能有多个,降低难度要求只需要输出其中一个就可以了。

3. 算法分析


  找众数的算法有很多种比如“观察法”、“金氏插入法”、“皮尔逊经验法”等。由于题目只要求找到一个众数即可,参考这些经典算法后有以下几种思路供你参考。
  1) 方法一:每次取出列表第一项,统计该项数值在列表中出现的次数,记录下来,然后将该项删除。这样依次重复统计每项数值出现的次数,直到列表为空。
  用专门变量记录出现次数最多的那个数值,这个数值可能就是数列中的众数。
  除此之外,我们还需要排除所有数值出现次数相同的情况,如果这个数值出现的次数>列表数值出现次数的平均数,则代表众数存在,否则就没有众数。数值出现次数的平均数=列表项目总数÷列表中数值的种类。
  这种方法由于会删除原列表1,所以是一种破坏型的方法。可以新增备份列表2解决这个问题。
  2) 方法二:统计列表1中每一项数值出现的次数,一一对应存储到列表2中,然后从列表2中找到最大的那个数,那么该项对应列表1的数就可能是众数。
  再看列表2中所有数是不是都一样,只要有一个不一样,那么列表1就存在众数。
  3) 方法三:先排序,然后找出那个重复最多的数就是众数了。这种方法用到了排序,排序有很多种算法,本文不再详述,你可以根据以前介绍过的排序方法想想看如何实现。

4. 方法一代码分析


  依次对比并记录重复次数最多的数值,并删除对比过的数值(如图1)。



  1) 创建变量:众数、众数出现次数、有无众数用来记录成果。列表长度、搜索项、搜索项次数、数字种类作为中间变量。index作为临时变量。
  2) 创建列表1,将随机数加入这个列表。将列表1复制到备份列表2。解决找众数过程中列表1会被删除的问题(如图2)。



  3) 初始化各个变量,有无众数设为“无”,列表长度为列表1项目数。
  4) 把列表1第1项设为“搜索项”,依次比对整个列表,记录该搜索项出现的次数,并删除所有与该搜索项相同的数值。这样重复删除直到列表1为空时就比对完成了。
  5) 如果新的搜索项出现次数大于众数出现次数,将众数设为该搜索项,将众数出现次数设为搜索项次数。当列表被清空时,众数就是表中出现次数最多的数值了(如图3)。



  6) 判断有无众数。如果众数出现次数大于数字出现的平均数就可以判断有众数了。如果有众数就用连接块整合输出最终结果即可(如图4,5)。


5. 方法二代码分析


  统计列表中每一项数值出现的次数,从中找到最大数,它对应列表中的项就是众数(如图6)。



  1) 定義变量:众数是第几项、众数出现次数、有无众数用来记录众数。搜索项、搜索项次数、列表长度、index用来统计列表每项出现的次数。
  2) 生成随机列表1,建立列表2用于存储列表1每项在列表中重复出现的次数。   3) 统计列表某一项在列表中出现的次数。把列表搜索项依次比对整个表格,将重复出现次数记录在搜索项次数中并存入列表2(如图7)。



  4) 完成统计后列表2中记录了每项重复出现的次数,下面找出列表2中最大的项(如图8)。



  5) 找到列表2中最大的一项。从列表2第一项开始找到较大的项记录在“众数出现次数”中,重复“列表项目数”次就对比了全部项,这时“众数出现次数”就是列表中最大的项,这项的顺序位置记录在“众数是第几项”中对应到列表1中就找到这个列表的众数了(如图9)。



  6) 在比对列表2中最大数的同时,我们还要同时判断列表是否有众数。只要列表2中的数值有一次出现不相等,就代表列表1有众数(如图10)。



  7) 输出结果,完成循环。如果有众数,用连接块将结果说出来就可以了(如图11)。



  通過对两种找众数算法的简析,我们练习了两种找众数的算法。你可以根据对这个问题的理解继续改进算法或找到新的算法,还可以试试看能不能找到列表中所有的众数。


其他文献
快播商标拍卖  快播已经成为历史,但其具有知名度的商标异常抢手。  日前,根据阿里拍卖网消息显示,快播名下的一批商标以及部分专利已经完成了破产拍卖。其中,快播的商标最终以950万元的价格成交,而快播的部分专利以13.49万元的价格成交。  一开始,这些商标的起拍价只有4.51万元,但经过了292次延时,402次竞价之后,最终的成交价是起拍价的210倍以上。  快播拍卖的这批商标合计有234项,主要
期刊
摘要:目的:研究使用滤器制备去白细胞全血和去白细胞悬浮红细胞的技术,临床观察降低非溶血液性输血反应的发生率。方法:用白细胞过滤器和无菌接口的方法制备出50袋(规格为200ml)去白全血和去白悬浮红细胞制剂,并对此进行质量检测,临床调查输血人次36328,临床选择23例(占总输血人次的0.0633%)。既往有多次输血史,并且发生过2次以上输血反应的患者,输注去白细胞血液制剂时,所发生的输血反应情况。
期刊
摘要:目的:研究分析多索茶碱注射液对支气管炎患者的临床治疗效果及安全性。方法:选择2012年6月~2013年10月期间在本院就诊的60例支气管炎患者作为临床试验研究对象,随机分为两组。对照组行以氨茶碱注射液进行治疗;实验组行以多索茶碱注射液进行治疗,对比分析两组患者的总有效率。结果:实验组30例患者,21例疗效显著(70.00%),8例治疗有效(25.81%),1例治疗无效(3.33%),总有效率
期刊
摘要:目的:探讨高海拔地区非酒精性脂肪性肝病与糖脂代谢的关系。方法:采用随机调查研究方法,分析青海省人民医院252例健康体检者的体重指数、血压、总胆固醇、甘油三酯、空腹血糖和肝脏超声检查相关临床资料。结果:非酒精性脂肪性肝病组中体重指数、血压、总胆固醇、甘油三酯和空腹血糖水平均明显高于对照组(P< 0.01)。结论:非酒精性脂肪性肝病患病与个人糖脂代谢密切相关。  关键词:脂肪肝;非酒精性;高海拔
期刊
摘要:目的:探讨腹腔镜联合胆道镜治疗92例胆管结石患者疗效。方法:选取我院2011年-2012年收治的92例胆管结石患者进行治疗分析,设为观察组,并进行腹腔镜联合胆道镜取石治疗;以同期接受治疗的92例患者为对照组,采取传统的开腹手术治疗,并比较两组患者的各项指标。结果:观察组患者疗效明显高于对照组患者,两组之间比较,差异具有统计学意义(P0.05),具有可比性。  1.2方法  1.2.1对照组手
期刊
近日,中国市场的“人造肉大战”再次迎来两个重量级玩家。  先是喜茶在5月18日官宣,已联合国内人造肉初创公司STARFIELD,推出植物肉汉堡“未来肉芝士堡”;后有雀巢在5月20日被爆出,增资1亿瑞士法郎(约合人民币7.3亿元)用来投建雀巢亚洲首个人造肉工厂。  而在他们之前,肯德基已经开启了“人造肉”鸡块产品的公测,星巴克的人造肉午餐套餐也在热卖中,更别提奈雪的茶三款人造肉料理上线一小时就被抢购
期刊
摘要:目的:探讨更昔洛韦治疗小儿疱疹性口腔炎的临床疗效,以供临床参考。方法:回顾性分析我院于2012年01月-2014年01月收治的74例疱疹性口腔炎患者的临床资料,根据治疗方式的不同将其分为研究组和对照组,每组各37例。对照组给予利巴韦林静脉滴注进行治疗,研究组则采用更昔洛韦静脉滴注治疗,对比两组患儿的临床疗效和不良反应发生情况。结果:研究组的临床疗效明显优于对照组,其中研究组总有效率为35例(
期刊
难做无“米”之炊  “电影院关门,演唱会延期,音乐剧取消,音乐节也是痴心妄想。这一年的三分之一就这样过去了,或许还将迎来一个没有‘乐队’的夏天。”  演艺业爱好者肖芮原本对2020年充满期待,早在2019年年末,她就准备好一本崭新的日历,将新一年的电影上映时间、演唱会和音乐节时间作好标记,“2020年本来是演唱会盛年,男歌手从周杰伦、陈奕迅到新裤子,女歌手从孙燕姿、刘若英到蔡依林,全都有演唱会的计
期刊
摘要:目的:探究分析宫缩乏力所导致的产后出血的临床护理方式。方法:采用回顾性分析的方法,分析了我院在2013年1月至2013年12月间收治的56例因宫缩乏力而发生产后出血的患者的临床资料。根据患者所受护理方式的不同,将本组患者随机分成对照组和实验组,每组各28例,对照组患者给予常规护理,实验组患者给予综合性护理。分析比较两组的护理效果和患者满意度。结果:实验组患者的临床治疗有效率明显高于对照组(P
期刊
登上综艺,争夺屏幕  5月1日,热播综艺《向往的生活》先导片中,一张被当作节目道具的“视力表”显得有些特别——白色的A4纸上,以不同字号印着包括作业帮在内的14家赞助商名字。随后,节目主持人则以这些品牌词组,创作了即兴歌曲。  弹幕飞过,其中不乏对此的调侃:“看个综艺都能被教育平台支配,还好已经毕业了。”《向往的生活》中特别的“视力表”  另一边,开播不久的《王牌对王牌》第五季中,“猿辅导在线答疑
期刊