zoukankan      html  css  js  c++  java
  • 八中常用的算法设计

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

    二、穷举搜索法

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

    三、递推法

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

    四、递归法

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

    五、回溯法

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

    六、贪婪法

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

    七.分治法

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

    八.动态规划法

      

    举例:
    线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;
    区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等;
    树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等;
    背包问题:01背包问题,完全背包问题,分组背包问题,二维背包,装箱问题,挤牛奶(同济ACM第1132题)等;
    应用实例:
    最短路径问题 ,项目管理,网络流优化等;
  • 相关阅读:
    第三周学习进度表
    思维导图
    第二周学习进度表
    调查问卷
    微感想
    C/C++数组取值的真实实现——一个初学者的常见疑惑
    保存所有标签页,以便下次打开继续工作
    内存越界调到心态爆炸
    C语言VC6的一个asprintf实现,或:VC6上C语言使用asprintf, snprintf的坑
    Learning and Inference for Hierarchically Split PC中文字幕
  • 原文地址:https://www.cnblogs.com/zyt-bg/p/9872541.html
Copyright © 2011-2022 走看看