算法思想_常见四种

常用算法思想描述

穷举算法思想

  1. 依赖于计算机的强大计算能力,来计算每一种可能的情况,从而解决问题,穷举法效率不是很高,但是使用以没有明显规律的场合

1. 基本思想

  1. 就是从所有可能的情况中搜索正确的答案

2. 步骤

  1. 对于一种可能的情况,计算其结果
  2. 判断结果是否满足要求,如果不满足执行第一步,搜索下一个可能的情况
  3. 需要明确指定答案的范围,通过循环和条件语句来确定最终答案

3.实例

  1. 鸡兔同笼问题

递推算法

1. 基本思想

  1. 是一种理性思维模式的代表,其根据已有的数据和关系,逐步推导而得到结果。
  2. 需要用户知道准去的答案和问题之间的逻辑关系,例如数学计算的公式一样

2. 步骤

  1. 根据已知结果和关系,求解中间结果
  2. 判断是否达到要求,如果没有达到,继续求解,如果满足,怎么表示找到准确答案

3. 实例

  1. 兔子产仔

递归算法

1. 基本思想

  1. 递归算法就是不断调用自身,来达到求解问题的方法,
  2. 要求 待求解的问题,是可以分解为相同的问题的一个子问题
  3. 分类
    1. 直接递归——直接在方法中调用本身
    2. 间接递归——间接调用一个方法,例如 a 调用b,b调用c,c调用a。。这种用的不多

2. 步骤

  1. 就是相当于数据的阶乘一样

3. 实例

  1. 阶乘

1. 分治算法

1. 基本思想

  1. 是将 计算复杂的问题分为规模较小、计算简单的小问题求解,然后综合各个小问题的答案,最后得到问题答案

2. 步骤

  1. 对于一个规模为n的问题,(不能直接容易求解) ,
  2. 将问题分解为M个规模较小的子问题,子问题相互独立,并且与原问题形式相同
  3. 递归解决问题
  4. 然后综合

3. 实例

  1. 寻找假币

概率算法

1. 基本思想

  1. 通过概率统计来求解问题,但是不能求解精准答案,
  2. 概率算法分为:
    1. 数值概率
    2. 蒙特卡罗(Monte Carlo)
    3. 拉斯维加斯(Las Vegas)
    4. 舍伍德(Sherwood)

2. 步骤

  1. 将问题 转化为几何图形$S ,通过图形面积计算,,,问题的结果往往是几何图形的某一部分S1$的面积
  2. 然后,向几何图形随机撒点
  3. 统计几何图形SS,S1S1 的点数,通过面积关系和点数来计算结果
  4. 判断上面结果是不是需要精度之内,如果不是重复步骤2

3. 实例

  1. 蒙特卡罗计算圆周率

如果还有时间,将继续更新

原文地址:https://www.cnblogs.com/YJBlog/p/11054527.html