八中常用的算法设计

一、迭代法 (利用计算机运算速度快的特点,让计算机对一组指令进行重复性操作)
  迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。

二、穷举搜索法

  对可能的众多候选解按照某种顺序逐一枚举与检验,从而找出符合要求的情况

三、递推法

  通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。递推算法分为顺推和逆推两种。

四、递归法

  为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。

五、回溯法

  是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

六、贪婪法

  核心:不追求最优解,只希望得到较为满意的解

七.分治法

  基本思想:将一个难以解决的大问题,分割成规模较小的的相同问题,以便各个击破,分而治之。

八.动态规划法

  

举例:
线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;
区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等;
树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等;
背包问题:01背包问题,完全背包问题,分组背包问题,二维背包,装箱问题,挤牛奶( 同济ACM第1132题)等;
应用实例:
最短路径问题 , 项目管理,网络流优化等;

 

转载于:https://www.cnblogs.com/zyt-bg/p/9872541.html

你可能感兴趣的:(数据结构与算法)