电子科技大学计算机学院实验中心实验报告实验一一、实验名称:分治和动态规划算法实现二、实验学时:4三、实验内容和目的:希望通过本次试验,加深对分治算法原理及实现过程的理解(1)二分法求方程近似解:求方程f(x)=x^3+x^2-1=0在[0,1]上的近似解,精确度为0
(2)给定一个顺序表,编写一个求出其最大值和最小值的分治算法
分析:由于顺序表的结构没有给出,作为演示分治法这里从简顺序表取一整形数组数组大小由用户定义,数据随机生成
我们知道如果数组大小为1则可以直接给出结果,如果大小为2则一次比较即可得出结果,于是我们找到求解该问题的子问题即:数组大小(b)
(b):(a))#defineMAX(a,b)((a)>(b)
(a):(b))inta[Len],n;intGetMin(intl,intr){if(l==r)returna[l];intmid=(l+r)>>1;returnMIN(GetMin(l,mid),GetMin(mid+1,r));}intGetMax(intl,intr){if(l==r)returna[l];intmid=(l+r)>>1;returnMAX(GetMax(l,mid),GetMax(mid+1,r));}intmain(){inti;printf("请输入您顺序表中元素的个数:");scanf("%d",&n);printf("请依次输入您顺序表中的元素:");for(i=0;i0
01){mid=(r+l)/2;if(function(mid)>=0)r=mid;elsel=mid;}doubleans=r;printf("%
2f\n",ans);system("pause");}运行结果如下:七、实验数据及结果分析:程序的代码、数据、截图都放在实验步骤中具体体现,我们不妨来验证一下方程的解是否正确,将0
76带入函数中计