[工学]第6章数组.ppt

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

排序算法——选择法排序(3) 选择法排序算法描述(P213) for (i=0; in-1; i++) { k = i; for (j=i+1; jn; j++) { if (score[j] score[k]) 记录此轮比较中最高分的元素下标 k = j; 若k中记录的最大数不在位置i,则 交换成绩score[j]和score[i], 交换学号num[j]和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; } } } 排序和查找 查找(Searching)算法 顺序查找 折半查找 【例】顺序查找学号 int LinSearch(long num[], long x, int n) { int i; for (i=0; in; i++) { if (num[i] == x) { return (i); } } return (-1); } 哈,找到了! 事先不必排序 折半查找示意图 查找算法——折半查找(1) 数组下标 0 1 2 3 4 99011 99013 99015 99017 99019 第1次循环 low high mid 查找值x=99017 xa[mid] low=mid+1 99011 99013 99015 99017 99019 第2次循环 high low=mid x=a[mid] 找到 条件:low=high 折半查找示意图 查找算法——折半查找(1) 折半查找示意图 查找算法——折半查找(2) 数组下标 0 1 2 3 4 99011 99013 99015 99017 99019 第1次循环 low high mid 查找值x=99016 xa[mid] low=mid+1 99011 99013 99015 99017 99019 第2次循环 high low=mid xa[mid] high=mid-1 99011 99013 99015 99017 99019 第3次循环 low high 不满足low=high,循环结束 未找到! 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

文档评论(0)

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

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

1亿VIP精品文档

相关文档