第5章第三讲数组举例.ppt

第5章第三讲数组举例.ppt

ID:48167830

大小:160.50 KB

页数:9页

时间:2020-01-16

第5章第三讲数组举例.ppt_第1页
第5章第三讲数组举例.ppt_第2页
第5章第三讲数组举例.ppt_第3页
第5章第三讲数组举例.ppt_第4页
第5章第三讲数组举例.ppt_第5页
资源描述:

《第5章第三讲数组举例.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章第3讲数组举例选择法排序例2:用选择排序法对键盘输入的N个数从小到大进行排序.基本思想:假设有N个数据放在数组a中,现要把这N个数从小到大排序.首先:在a[0]到a[N-1]的范围内,选出最小值与a[0]交换;然后:在a[1]到a[N-1]范围内,选出最小值与a[1]交换;接着是a[2]到a[N-1]的范围,这样依次进行下去,进行N-1次选择后就可完成排序.即第i趟排序的待排序范围是a[i]~a[N-1]的元素,要从中选出值最小的元素并与a[i]交换位置。第5章第3讲数组举例选择法排序例:对{6,8,5,4,6,9,3,1}用选择排序法

2、进行排序.第i趟选择的步骤实现:(1)引入整型变量J和K,变量J赋初值i+1,变量K赋初值i;(2)若a[K]>a[J],则将J的值赋给K.(使K总是记录着最小元素的下标).(3)每进行完一次比较,J++;回到(2);(4)当J>N-1,若K!=i,交换a[i]和a[K].第一次选择排序:aKj当a[K]A[j]则执行K=j,j++3iKJ20第5章

3、第3讲数组举例选择法排序比较到待排序元素最后:a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]第一趟选择结果为:68546931iKj7iKJ70当A!=K则交换a[K]与a[I]18546936第5章第3讲数组举例选择法排序第二趟排序:待排序元素结果为:18546936iKj2iKJ1113546986iKj7iKJ61第5章第3讲数组举例选择法排序同样第三趟结果为:第四趟结果为:第五趟结果为:第六趟结果为:第七趟结果(最终)为:1345698613456986134569861345668913456689第5章第3讲数组

4、举例选择法排序main(){inti,j,k,a[8],temp;clrscr();for(i=0;i<8;i++)scanf("%d",&a[i]);for(i=0;i<8-1;i++){k=i;for(j=i+1;j<8;j++)if(a[k]>a[j])k=j;if(k!=i){temp=a[i];a[i]=a[k];a[k]=temp;}}for(i=0;i<8;i++)printf("%d,",a[i]);printf("");}第5章第3讲数组举例选择法排序作业5.5讲解有18个数围成一圈,求相临三个数之和的最大数.思路:1、

5、18个数肯定是用数组来保存2、围成一圈,就是逻辑上理解最后一个后面又是第一个3、相临三个数的和有18个4、比较这18个和,找出最大作业5.5讲解#includevoidmain(){inta[18],i,max,t,k,m;printf("Pleaseinput:");for(i=0;i<18;i++)scanf("%d",&a[i]);max=a[0]+a[1]+a[2];for(i=1;i<18;i++){k=(i+1)%18;m=(i+2)%18;t=a[i]+a[k]+a[m];if(t>max)max=t;}p

6、rintf("maxis%d",max);}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。