- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用数组实现算法分析
利用数组实现算法分析
某些算法和字符串操作常利用数组实现。例如求最大(小)值、排序、数字拆分、字符串操作(连接、长度、合并、回文、插入、删除、反序、排序、单词分割等)。
1. 编程,任意输入10个人的成绩,按从大到小的顺序排列。运行程序时,只要输入名次,计算机就能输出该名次对应的成绩。
输入: 4,7,3,6,1,5,12,0,23,51
输入: 4
输出: The 4th is 6
分析:用选择法排序。第n名是a[n-1]。
2. 编程,输入10个整数及其序号,求出10个整数的最大值、次大值、最小值和次小值,并输出它们原来输入时的序号。
输入:1,15 2.11 3,0 4,7 5,1 6,5 7,7 8,40 9,2 10,23
输出:8: 40 10: 23
3: 0 5: 1
分析:用选择法排序。a[j][0]--序号,a[j][1]--成绩。交换时a[j][0]、a[j][1]一起交换。前两名和后两名即为所求。也可以分两次求最大、最小值,但不如排序法简单。
3. 编程,输入10个整数,输入要查找的整数,然后进行查找。若找到,则输出该数在数组中的下标位置,否则输出“can not found!”。
输入:12 23 43 21 56 7 9 4 33 67(a数组的内容)
56(要找的数)
输出:56=a[4]
65(要找的数)
输出:65 can not found!
分析:用数组存放10个整数,对10个整数循环,输出找到的整数及其在数组中的下标。
4.编程,输入一个字符串并删除其中的指定字符。例如,对于字符串abcdcf,指定删除c,则结果为:abdf。
结果:输入:abcdcf和c
输出:abdf
分析:输入一个字符串s和要删除的字符ch,从字符串首开始逐个字符检查,每遇ch则将后面的字符向前移动一个位置覆盖要删字符ch(参考例7-16中删除数组元素的方法).
5. 编程,输入一行字符,将其反序后再输出。
输入: abcdefg
输出:gfedcba
分析:输入n个字符到a数组,a[j]与a[n-j-1]互换(j=0,1,2,…,n/2-1)。(参考例7-3)
6. 编程,输入两个字符串,将两个字符串合并为一个新的从小到大排列字符串并输出。
输入:13579
24acf
输出:1234579acf
分析:先将两个字符串合并成一个字符串,然后按从小到大排序。
7. 编程,输入若干个字符串,当输入字符串的长度为0时停止输入。输出最长的字符串。
输入:china
Beijing
Chongqing
Shanhai
输出:Chongqing
分析:用循环输入各字符串并求其长度,找最大长度并输出相应字符串。输入空串(长度为0)时结束循环。
8.任意输入一个4位自然数,输出该自然数的各位数字组成的最大数。例如,输入1593,则输出为9531。
结果:输入:1593
输出:9531
分析:将4位数的各位数字存入数组,然后对数组进行从大到小排序,再组成新的4位数:
a[0]*1000+a[1]*100+a[2]*10+a[3]
9. 编程,将输入的两行字符串连接后,将新串中全部空格移到串首后输出。
输入:bei jing
ch i na
输出: beijingchina
分析:两行字符串先连接,然后扫描整个字符串,若当前字符s1[i]是空格,则进行移位,s1[i-1]~s1[0]向后移动一个位置,s1[i]被覆盖,被删空格放在串首s1[0]。 再继续扫描,直到串尾。
10. 编程,将任一正整数转换为二进制形式。
结果:输入:144
输出:n(10)=144
n(2)=1 0 0 1 0 0 0 0
分析:用除2取余数的方法化2进制,用数组存放2进制各位数字。
11. 编程,找出一个二维数组中的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。二维数组也可能没有鞍点。
⑴ 输入 n=4,m=4
1 2 3 4
5 5 5 5
5 5 5 5
5 5 5 5
输出: 鞍点为a[0][3]=4。
分析:找出i行最大值所在的列号k(i=0,1,…,n), 若a[i][k]是k列最小,则a[i][k]是鞍点。也可能没有鞍点。
12. 用空格或换行分开的字符串称为单词。输入多个字符串,直到遇到了单词stop时才停止。最后输出单词的数量。
结果:
您可能关注的文档
最近下载
- 夏超英自动控制原理678章答案.doc VIP
- 新目标汉语口语课本1教材-第1单元.ppt VIP
- 太原市2020年(春秋版)英语四年级下册Unit 4 At the farm 单元测试卷(I)卷.doc VIP
- 辐射防护软件:PHITS二次开发_(2).PHITS的基本原理与应用.docx VIP
- 新能源汽车检测与故障诊断技术 项目五 车辆无法上电故障诊断与排除.ppt VIP
- 2025年食堂餐厅原材料验收标准 .pdf VIP
- 数控广播报警系统PAGA.ppt VIP
- 急性呼吸衰竭(共34张PPT)【34页】.pptx VIP
- 《O2O模式下企业营运资金管理研究—以森马公司为例》10000字.docx VIP
- 2025年食品原料采购索证验收制度 .pdf VIP
文档评论(0)