C语言程序设计-苏小红-教学课件8.pptVIP

C语言程序设计-苏小红-教学课件8.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何实现两数交换? temp = score[j]; score[j] = score[i]; score[i] = temp; temp score[j] score[i] ? 70 50 70 50 70 【例8.8】交换法从高到低排序 void DataSort(int score[], int n) /*交换法排序*/ { int i, j, temp; for (i=0; in-1; i++) { for (j=i+1; jn; j++) { if (score[j] score[i]) /*从高到低*/ { temp = score[j]; score[j] = score[i]; score[i] = temp; } } } } 选择法排序 k=1 k=2 k=0 k=1 选择法排序 k=3 k=4 k=3 k=4 选择法排序 选择法排序 for (i=0; in-1; i++) { k = i; for (j=i+1; jn; j++) { if (score[j] score[k]) 记录此轮比较中最高分的元素下标 k = j; } 若k中记录的最大数不在位置i,则 交换成绩score[k]和score[i], 交换学号num[k]和num[i]; } void DataSort(int score[], long num[], int n) /*选择法*/ { int i, j, k, temp1; long temp2; for (i=0; in-1; i++) { k = i; for (j=i+1; jn; j++) { if (score[j] score[k]) { k = j; /*记录最大数下标位置*/ } } if (k != i) /*若最大数不在下标位置i*/ { temp1 = score[k]; score[k] = score[i]; score[i] = temp1; temp2 = num[k]; num[k] = num[i]; num[i] = temp2; } } } 【例8.8】成绩从高到低顺序 8.4排序和查找 查找(Searching)算法 顺序查找 折半查找 【例8.10】顺序查找学号 int LinSearch(long num[], long x, int n) { int i; for (i=0; in; i++) { if (num[i] == x) { return (i); } } return (-1); } 哈,找到了! 事先不必排序 【例8.11】折半查找学号 哈,找到了! 按升序排序 10122 10124 10126 10128 10130 【例8.11】折半查找学号 唉,没找到! 10122 10124 10126 10128 10130 int BinSearch(long num[], long x, int n) { int low, high, mid; low = 0; high = n - 1; while (low = high) { mid = (high + low) / 2; if (x num[mid]) { low = mid + 1; } else if (x num[mid]) { high = mid - 1; } else { return (mid); } } return(-1); } 找到时返回下标位置 找不到时 返回-1 若未按学号排序, 则如何修改程序? void DataSort(

您可能关注的文档

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档