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

Posted 妖精游乐场

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法常用设计模式(子博客)相关的知识,希望对你有一定的参考价值。

1. 枚举法

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

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

 

2. 贪心法

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

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

 

3. 分治法

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

 

4. 回溯法(搜索法)

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

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

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

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

 

 

5. 动态规划方法

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

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

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

 

6. 分支限界法

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

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

 

 

说明:

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

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

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

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

 

以上是关于算法常用设计模式(子博客)的主要内容,如果未能解决你的问题,请参考以下文章

转载算法设计之五大常用算法设计方法总结

常用算法设计和优化策略(本蒟蒻不定期更新)

数据结构与算法之深入解析常用的七大算法设计策略

chatGPT教你算法——分治法

chatGPT教你算法——分治法

常用算法之分治算法