常用算法思想

常用算法思想

根据不同的问题,可以采用如下几种常用的算法:穷举算法思想、递推算法思想、递归算法思想、分治算法思想、概率算法思想。

一、穷举算法思想。

      从所有可能的情况中搜索正确的答案。 执行步骤:

      1、对一种可能的情况,计算其结果。

      2、判断结果是否满足要求,如果不满足则执行第1步来搜索下一个可能的情况;如果满足要求,则表示寻找到一个正确的答案。

二、递推算法思想。

     递推是一种理性思维模式的代表,根据已有的数据和关系,逐步推到而得到结果。执行步骤:

    1、根据已知的结果和关系,求解中间结果。

    2、判定是否达到要求,如果没有达到,则继续根据已知结果和关系求解中间结果。如果满足要求,则表示寻找到一个正确的答案。

三、递归算法思想。

    递归算法就是在程序中不断反复调用自身来达到求解问题的方法。递归调用时一个函数在它的函数体内调用它自身的函数调用方式。递归调用分为两种:直接递归和间接递归。

    直接递归:在函数中调用函数本身。

    间接递归:间接的调用一个函数,如func_a调用func_b,func_b又调用func_a。

    递归的好处:代码清晰,可读性好。递归缺点:大部分递归没有明显减少代码规模和节省内存空间。递归形式比非递归形式的运行速度要慢一些。如果递归层次太深,可能会导致堆栈溢出。

四、分治算法思想。

    分治算法基本思想是将一个计算复杂的问题分为规模较小,计算简单的小问题求解,然后综合各个小问题,得到最终问题的答案。执行步骤:

   1、对于一个规模为N的问题,若该问题可以容易地解决,则直接解决,否则执行下面的步骤。

   2、将该问题分解为M个规模较小的子问题,这些子问题互相独立,并且与原问题形式相同。

   3、递归地解子问题。

   4、然后,将各子问题的解合并得到原问题的解。

   分治算法在程序中可以使用递归算法来进行求解。

五、概率算法思想。

   概率算法执行的基本过程:

   1、将问题转化为相应的几何图形S,S的面积是容易计算的,问题的结果往往对应几何图形中某一部分S1的面积。

   2、然后,向几何图形中随即撒点。

   3、统计几何图形S和S1中的点数。根据S的面积和S1面积的关系以及各图形中的点数来计算得到结果。

   4、判断上述结果是否在需要的精度之内,如果未达到精度则执行步骤2.如果达到精度,则输出近似结果。

   概率算法大致分为4种:

    1)数值概率算法。

    2)蒙特卡洛(Monte Carlo)算法。

    3)拉斯维加斯(Las Vegas)算法。

    4)舍伍德(Sherwood)算法。


   参考书籍《C/C++常用算法手册》。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值