菜单
  

    本文主要介绍了二分法的应用概念和原理,即用分治法的思想[11],采用递归技术[5-6],并给出相应的算法设计程序,结合具体问题,来将复杂问题一分为二,从而简单方便的解决问题.关于二分法的一些应用非常广泛,如排除路障,求解近似解,快速数据查找等,经过详细的实际分析计算,运用一些数学MATLAB和计算机软件C语言辅助运算,结合分治和递归来说明解释和介绍二分法的一些应用.在此基础上又对二分法的低效的情况进行了分析,并提出一些改进方案,使得二分法更好的解决问题,造福人类生活.

    1.与二分法相关的基本原理
    1.1递归过程的设计和实现
    1.1.1递归原理
    递归算法[5]的主要表现形式为过程或函数在定义自身的同时对自身进行调用.采用递归策略的时候,一是寻找对问题进行分解的方法,二是所分解问题的出口,即设计递归出口.
    在算法的递归调用过程中,进行递归进层(i→i+1层)系统需要做一下三件事;(1)将所有的实在参数、 返回地址等信息传递给被调用函数保存;(2)给下一层参数赋值(作为被调用函数的局部变量分配存储区);(3)将程序转移到被调函数的入口.而从被调用函数返回调用函数之前,递归退层(i←i+1层)系统也应完成三件工作:(1)保存被调函数的计算结果;(2)恢复上层参数(释放被调函数的数据区);(3)依照被调函数保存的返回地址, 将控制转移回调用函数.
    递归算法流程图如下图1所示:
     递归算法流程图
    1.1.2递归算法分析
    求解递归方程一般可采用3种方法,即替代方法,递归方法和主方法.这里主要介绍替代方法中的二路归并排序的递归算法分析,在二分法的应用中,此技术发挥了重要作用.将待排序的元素序列一分为二,得到长度基本相等的两个子序列,分别排序.如果子序列较长,还可继续细分,直到子序列的长度不超过1为止.当分解所得的子序列已排列有序时,将两个有序子序列合并成一个有序子序列,得到原问题的解.合并方法是比较两序列中的最小值,输出其中较小者,然后重复此过程,直到其中一个队列为空时,如果另一个队列还有元素没有输出,则将剩余元素依次输出.
    1.2分治法思想以及应用原理
    1.2.1分治法的思想
    分治法的设计思想是,若一个大问题难以直接解决,则需要将它分成一些规模比较小的相同问题,然后各个击破,分而治之.如果原问题可分割成i个子问题,1<i<=n ,所有的子问题都可解,则原问题的解就可以通过这些子问题的解求出来,那么这种分治法就是可行的.由分治法产生的子问题一般是原问题的较小模式,这就为使用递归技术提供了方便.在这种情况下,若反复使用分治手段,可以使原问题的规模不断缩小且子问题与原问题类型保持一致,最终使子问题缩小到很容易直接求出其解.这自然导致递归过程的产生.分治与递归形影不离,经常同时应用在算法设计之中,并由此产生许多高效算法.
  1. 上一篇:C语言中函数的调用及参数的传递研究
  2. 下一篇:C语言中数组名作函数参数的研究
  1. 椭圆的生成路径研究

  2. 基于指数模型的最大次序统计量的可靠性性质

  3. 关于运用韦达定理时出现问题的探讨

  4. 学讲计划数学课堂中合作...

  5. 行列式在高中数学中的应用

  6. 多项式拟合在变形数据分析中的应用

  7. 非线性差分方程解的单调性

  8. 杂拟谷盗体内共生菌沃尔...

  9. 乳业同业并购式全产业链...

  10. 酸性水汽提装置总汽提塔设计+CAD图纸

  11. 当代大学生慈善意识研究+文献综述

  12. 大众媒体对公共政策制定的影响

  13. 河岸冲刷和泥沙淤积的监测国内外研究现状

  14. 电站锅炉暖风器设计任务书

  15. java+mysql车辆管理系统的设计+源代码

  16. 中考体育项目与体育教学合理结合的研究

  17. 十二层带中心支撑钢结构...

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回