网站大量收购独家精品文档,联系QQ:2885784924

冒泡排序-计算机级机试必考内容.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
冒泡排序-计算机级机试必考内容

先看一道计算机三级原题 例、已知数据文件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]*/ {

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档