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

交换法排序 for (i=0; in-1; i++) { for (j=i+1; jn; j++) { if (arr[j] arr[i]) temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } } 选择法排序 第1趟(6次比较) 选择法排序 第2趟(5次比较) 选择法排序 第3趟(4次比较) 选择法排序 第4趟(3次比较) 选择法排序 第5趟(2次比较) 第6趟 选择排序 要完成排序任务,需设置双重循环。 外层循环控制排序的趟数,对于有n个元素的数列,外层循环趟数为n-1,同时,外层循环的计数值可用作位置标识。 内层循环控制对剩余元素的比较。当前剩余m个元素,则至少要进行m-1次比较。当内层循环全部结束后,视情况进行交换。 内层循环受外层循环控制。内层循环的起始值为外层循环的当前值。因为当前值以前的位置已排序完毕。 选择法排序 for (i=0; in-1; i++) { k = i; for (j=i+1; jn; j++) if (arr[j] arr[k]) k = j; if(k!=i) { temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } } 现场演示查找算法 顺序查找 特例:求最大值,求最小值 折半查找 顺序查找 int Search(long a[], int n, long x) { int i; for (i=0; in; i++) { if (a[i] == x) { return (i); } } return (-1); } 折半查找 ①查找值x=99017 数组下标 0 1 2 3 4 第一次循环:99011 99013 99015 99017 99019 low mid high xa[mid], low=mid+1 第二次循环:99011 99013 99015 99017 99019 low=mid high x=a[mid],找到 折半查找 ②查找值x=99016 数组下标 0 1 2 3 4 第一次循环:99011 99013 99015 99017 99019 low mid high xa[mid], low=mid+1 第二次循环:99011 99013 99015 99017 99019 low=mid high xa[mid], high=mid-1 第三次循环:99011 99013 99015 99017 99019 high low 不满足low=high, 循环结束,未找到 int BinSearch(long a[ ], int n, long x) { int low, high, mid; low = 0; high = n - 1; while (low = high) { mid = (high + low) / 2; if (x a[mid]) low = mid + 1; else if (x a[mid]) high = mid - 1; else return (mid); } return(-1); } 字符串(String)与字符数组 字符串 一串以\0结尾的字符在C

文档评论(0)

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

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

1亿VIP精品文档

相关文档