第6章_数组.ppt

  1. 1、本文档共110页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一次运行结果: output array a: 18 21 96 63 73 33 16 72 58 57 64 92 28 24 15 76 aver of line 1 is 49.50 aver of line 2 is 48.50 aver of line 3 is 67.75 aver of line 4 is 35.75 max of line 1 is 96 max of line 2 is 73 max of line 3 is 92 max of line 4 is 76 再运行一次结果: 【例6-16】随机产生N个数,按升序排序,然后在其中查找数据k,若找到,显示查找成功的信息,并将该数据删除;若没有找到,则将数据k插入到这些数中,插入操作后数据仍然有序。 分析:在N个数中查找数据k,可以采用顺序查找法、二分查找法等方法。 顺序查找法的基本思想是:将要查找的数据k与存放在数组中的各元素逐个进行比较,直到查找成功或失败。 二分查找法又称折半查找法,这种方法要求待查找的数据是有序的。假设有序数据存放在一维数组a中,其查找数据k的基本思想是:将a数组中间位置的元素与待查找数k比较,如果两者相等,则查找成功;否则利用中间位置数据将数组分成前后两块,当中间位置的数据大于待查找数据k时,则下一步从前面一块查找k;当中间位置的数据小于待查找数据k时,下一步从后面一块查找k;重复以上过程,直至查找成功或失败。 用二分查找法查找数据22的具体过程 用二分查找法查找数据45的具体过程 #include <stdio.h> #include <conio.h> void main( ) { int a[20],k,i,n,low,high,mid; int point; printf("Please enter the number of data: "); scanf("%d",&n); /*输入原始数据的个数*/ printf("Please enter %d order data:",n); for(i=0;i<n;i++) scanf("%d",&a[i]); /*按从小到大的顺序输入数据*/ 源程序: printf("Please enter the number to be located:"); scanf("%d",&k); /*输入要查找的数据*/ low=0; high=n-1; while(low<=high) /*二分查找*/ { mid=(low+high)/2; if(a[mid]==k) { point=mid; /*记录查找值的位置*/ break; } 源程序: else if(a[mid]<k) low=mid+1; else high=mid-1; } if(low<=high) /*如果查找成功则删除数据*/ { printf("The index of data is: %d,Now delete it.\n",point); /*显示查找值的下标*/ for(i=point;i<n;i++) /*删除数据*/ a[i]=a[i+1]; for(i=0;i<n-1;i++) printf("%4d",a[i]); printf("\n"); } 源程序: else /*如果查找失败则插入数据*/ { printf("The data is not in the array! Now insert.\n"); i=n-1; while(a[i]>k) /*查找并空出插入数据的位置*/ { a[i+1]=a[i]; i=i-1; } 源程序: a[++i]=k; /*插入数据*/ for(i=0;i<=n;i++) printf("%4d",a[i]); printf("\n"); } } 源程序: 运行结果为:(查找成功,删除数据) 运行结果为:(查找失败,插入数据) 【例6-17】编一个程序,输入3个字符串(长度

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档

相关课程推荐