求最大值和最小值的分治算法.doc

求最大值和最小值的分治算法.doc

ID:58080944

大小:24.00 KB

页数:3页

时间:2020-04-10

求最大值和最小值的分治算法.doc_第1页
求最大值和最小值的分治算法.doc_第2页
求最大值和最小值的分治算法.doc_第3页
资源描述:

《求最大值和最小值的分治算法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、给定一个顺序表,编写一个求出其最大值和最小值的分治算法。分析:由于顺序表的结构没有给出,作为演示分治法这里从简顺序表取一整形数组数组大小由用户定义,数据随机生成。我们知道如果数组大小为1则可以直接给出结果,如果大小为2则一次比较即可得出结果,于是我们找到求解该问题的子问题即:数组大小<=2。到此我们就可以进行分治运算了,只要求解的问题数组长度比2大就继续分治,否则求解子问题的解并更新全局解以下是代码。*//***编译环境TC***/#include#include#include#defi

2、neM40/*分治法获取最优解*/voidPartionGet(ints,inte,int*meter,int*max,int*min){/*参数:*s当前分治段的开始下标*e当前分治段的结束下标*meter表的地址*max存储当前搜索到的最大值*min存储当前搜索到的最小值*/inti;if(e-s<=1){/*获取局部解,并更新全局解*/if(meter[s]>meter[e]){if(meter[s]>*max)*max=meter[s];if(meter[e]<*min)*min=meter[e];}else{if(meter[e]>*m

3、ax)*max=meter[s];if(meter[s]<*min)*min=meter[s];}return;}i=s+(e-s)/2;/*不是子问题继续分治,这里使用了二分,也可以是其它*/PartionGet(s,i,meter,max,min);PartionGet(i+1,e,meter,max,min);}intmain(){inti,meter[M];intmax=INT_MIN;/*用最小值初始化*/intmin=INT_MAX;/*用最大值初始化*/printf("Thearray'selementasfollowed:

4、");randomize();/*初始化随机数发生器*/for(i=0;i

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

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

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