- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
冒泡排序-计算机级机试必考内容
先看一道计算机三级原题 例、已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd=10且ab-cd=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。 最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 可以看到上题中红色部分就是要运用今天所学的冒泡排序方法进行排序 下面我们就来认识和学习——冒泡排序 排序 冒泡排序:起泡排序算法是交换排序算法中的一种。交换排序算法的基本思想是:按照某种原则,不断对数列中的一对对逆序(不符合排序要求)的数据进行比较交换,直到数列中不存在任何一对逆序的数据为止。例如要按照升序排列数据,则要通过交换,使任何一个数据前面没有比它大的数据。 三级原题的答案 void jsVal() { int i,j,t,ab,cd; for(i=0;iMAX;i++) { ab=a[i]/1000*10+a[i]/10%10; cd=a[i]%10*10+a[i]/100%10; if(ab - cd = 10 ab - cd = 20 ab%2==0 cd % 2==0 a[i]/10!=0 a[i]/10!=0) b[cnt++]=a[i]; } 希望大家有所收获 谢谢! ——计算机三级考试机试必考内容 冒泡排序 排序过程: (从小到大) 比较第一个数与第二个数,若为逆序a[0]a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上; 对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置; 重复上述过程,共经过n-1趟冒泡排序后,排序结束 38 49 65 76 13 27 30 97 第一趟 38 49 65 13 27 30 76 第二趟 38 49 13 27 30 65 第三趟 38 13 27 30 49 第四趟 13 27 30 38 第五趟 13 27 30 第六趟 13 27 第七趟 49 38 65 97 76 13 27 30 初始关键字 n = 8 38 49 76 97 97 97 97 13 27 30 13 76 76 76 27 30 13 65 65 65 27 30 13 49 49 49 27 30 13 38 38 38 27 30 冒泡排序图示效果 for j = 0 to NUM – i – 1 输入NUM 个数给a[0] 到 a[NUM-1] for i = 1 to NUM – 1 a[j] a[j+1] 真 假 a[j] ? a[j+1] 输出a[0] 到 a[NUM – 1] /*samp7-4a.c*/ #include stdio.h #define NUM 10 void main ( ) { int a[NUM], i, j, t; printf (input %d numbers: \n, NUM); for (i = 0; i NUM; i++) /*输入NUM个整数*/ scanf (%d, a[i]); for (i = 1; i NUM; i++) /*趟数,共NUM-1趟*/ for (j = 0; j NUM - i; j++)/*实现一次冒泡操作*/ if (a[j] a[j+1]) /*交换a[j]和a[j+1]*/ {
您可能关注的文档
- 既要_择善而固执_又要_不以所已藏害所将受_何兹全先生访谈录.pdf
- 机器人学(研202版)2-第二章 机器人运动学.pdf
- 极度恐慌想咬人的浪狗,竟慢慢变得温顺,救助过程让人感动不已.pdf
- 果评价规范》编制明(征求意见稿).PDF
- 桂花叶枯病病原菌定及生物学特性研究.pdf
- 根际微生态系统理在连作障碍中的应用.pdf
- 格咱岛弧印支期岩演化及普朗斑岩型铜矿成矿作用.pdf
- 检索号2017-P-0230.PDF
- 楷莱(盐酸多柔比脂质体注射液).pdf
- 概率论与数理统计合练习册.doc
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
文档评论(0)