码迷,mamicode.com
首页 > 编程语言 > 详细

算法常用设计模式(子博客)

时间:2018-03-14 20:48:36      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:回溯   str   治法   回溯法   nbsp   post   总结   选择   因此   

1. 枚举法

  根据具体问题枚举出各种可能,从中选出有用信息或者问题的解。

  这种方法利用计算机的速度优势,在解决简单问题时十分有效。

 

2. 贪心法

  如前所述,根据问题的信息尽可能做出部分的解,并基于部分解逐步扩充得到完整的解。

  在解决复杂问题时,这种做法未必能得到最好的解。

 

3. 分治法

  把复杂问题分解为相对简单的子问题,分别求解,最后通过组合起子问题的解的方式得到原问题的解。

 

4. 回溯法(搜索法)

   专指通过探索的方式求解。

  如果问题很复杂,没有清晰的求解路径,可能就需要分步骤进行,而每一步骤又可能又多种选择。

  在这种情况下,只能采用试探的方式,根据实际情况选择一个可能方向。

  当后面的求解步骤无法继续时,就需要退回到前面的步骤,另行选择求解路径,这种动作称为回溯。

 

 

5. 动态规划方法

  在一些复杂情况下,问题求解很难直截了当地进行,因此需要在前面的步骤中积累信息,在后续步骤中根据

  已知信息,动态选择已知的最好求解路径(同时可能进一步积累信息)。

  这种算法模式被称为动态规划。

 

6. 分支限界法

  可以看作搜索方法的一种改良形式。

  如果在搜索过程中可以得到一些信息,确定某些可能的选择实际上并不真正有用,就可以及早地将其删除,以缩小可能的求解空间,加速问题求解过程。

 

 

说明:

  上述算法设计模式只是人们对经验的总结。

  这些模式并不相互隔绝也不相互排斥。

  算法分析的主要任务就是弄清算法的资源消耗。

  算法分析的最重要作用是作为评价算法的一种标准。

 

算法常用设计模式(子博客)

标签:回溯   str   治法   回溯法   nbsp   post   总结   选择   因此   

原文地址:https://www.cnblogs.com/HZY258/p/8569769.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!