Java程序设计教程 项目式 作者 李桂玲 P1-4-2成绩的查找和排序.pptVIP

Java程序设计教程 项目式 作者 李桂玲 P1-4-2成绩的查找和排序.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
项目一 学生成绩管理系统(结构化实现) 在学生成绩管理系统中,不仅要对学生成绩进行一些简单的输入输出操作,经常要根据需要对学生成绩进行一些查找和排序,比如查找不及格学生名单,对学生成绩进行排名等。 例1.将数据:37 28 51 13 64为例,用『冒泡法』进行升序排列。 分析:冒泡法是一种形象的说法,较小的数就像气泡一样逐渐“上浮”到数组的顶部,而较大的数则“下沉”到数组底部,最后,就完成了排序过程。 其思路是:从第一个数开始循环,如果前一个数比后一个数大,则将它们交换,这样循环结束后,最后一个数就是所有数中最大的数,最后,在前面的n-1(n为数组长度)个数中在进行冒泡循环,直到最后排序完成。 如: 原始数据:37 28 51 13 64 第一轮:28 37 13 51 64 第二轮:28 13 37 51 64 第三轮:13 28 37 51 64 第四轮:13 28 37 51 64 一般来说,需要经过 n-1 轮 循环才能完成全部的排序。 int a[ ] = {37,28,51,13,64}; int i, j, n, temp; n = a.length; for(j=1;j n ;j++ ){ //共执行 n-1 轮 for(i=0;i n – j; i++){ //第j轮 if (a[i] a[i+1]){ //交换a[i]与a[i+1]的值 temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; } } } //打印排序后的结果 for(i=0;i n;i++){ System.out.print(a[i] + “ ”); } 例2:从数据:32 25 78 69 13 97 86 38 62 9 中找到数据97所在的位置。 『用顺序查找(线性查找)方法编写程序』 //声明并初始化数组 int a[ ] = {32,25,78,69,13,97,86,38,62,9}; int index = -1,i; //逐个元素与97相比较,找到则退出循环,否则继续 for(i=0;ia.length;i++){ if(a[i] == 97){ index = i; break; }} if(index == -1){ //表示该数不存在 System.out.println(“ The number 97 is not existed”); }else{ System.out.println(“The index of number 97 is: ” + index); } } 例3:将例2的数据进行从小到大排序后,存放在数组a中,用二分查找方法查找数据97。 分析:二分查找又叫折半查找。用于二分查找的数据必须是按某种顺序排好的数据。假定原来的数据是按从小到大的顺序排列,存放在数组中,先将要查找的值与数组的中点元素(下标为数组长度一半的元素)相比:如相等,则找到;如比中点元素小,则要查找的数据值可能在数组的左侧,于是可以舍弃右侧的元素,在数组的左侧继续查找;如比中点元素大,则舍弃左侧元素在右侧查找。 数组:9 13 25 34 38 62 69 78 86 97 第一步:与中点元素比较,数组长度为10,中点元素为a[5] 数组:9 13 25 34 38 62 69 78 86 97 显然a[5] = 62,97在数组a的右侧,于是继续在右侧查找。 第二步:在右侧的子数组中查找97,右侧数组的起始元素下标为6,中点元素下标为(6+9)/ 2 = 7,所以中点元素为a[7] 数组a:…… 69 78 86 97 由第二步结果得知,97仍然在子数组的右侧,继续在右侧a[8]~a[9]子数组中查找,最后得到结果为a[9] = 97,终于找到了。 //声明并初始化数组 int a[ ] = {9,13,25,34,38,62

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档