欢迎来到天天文库
浏览记录
ID:14178744
大小:141.54 KB
页数:4页
时间:2018-07-26
《分治法求数组最大最小值》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、西安邮电大学(计算机学院)课内实验报告实验名称:分治法求数组最大最小值专业名称:软件工程班级:学生姓名:学号(8位):指导教师:实验日期:2014年10月28日一.实验目的及实验环境Linux(Ubuntu)二.实验内容用分治法求数组的最大最小值。三.实验设计调用种子数产生随机数比较数据的最大最小值。其用分治法将数组数分半比较,依次比较知道产生最小值。重要代码:Mid=(m+n)/2;Max_Min(a,m,Mid,&Max1,&Min1);Max_Min(a,Mid+1,n,&Max2,&Min2);if(Max1>Max2)*Max=Max1;else*Max=Max2;
2、if(Min1>Min2)*Min=Min2;else*Min=Min1;四运行结果五.总结1.实验过程中遇到的问题及解决办法;开始只能对自定义的数组比较数据的最大最小值,后来通过查找资料利用了种子数产生所及数,将随机产生的数据比较其中的最大最小值。2.对设计及调试过程的心得体会。在调试程序时要认真仔细,熟悉掌握程序的细节六.源代码#include#includevoidmax_min(inta[],intm,intn,int*max,int*min){intmax1,max2,min1,min2,mid;if(m==n){*max=a[m]
3、;*min=a[m];}elseif(m==n-1){if(a[m]>a[n]){*max=a[m];*min=a[n];}else{*max=a[n];*min=a[m];}}else{mid=(m+n)/2;max_min(a,m,mid,&max1,&min1);max_min(a,mid+1,n,&max2,&min2);if(max1>max2)*max=max1;else*max=max2;if(min1>min2)*min=min2;else*min=min1;}}main(){intn;printf("请输入数组的大小N(整数):");scanf("%d",&
4、n);inti,a[n],max,min;printf("数组的各元素为:");srand((unsigned)time(NULL));for(i=0;i
此文档下载收益归作者所有