五大常用算法策略

Posted 技聊PM

tags:

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

我们在软件开发,实现一些功能的时候,往往会使用一些算法策略;我们一般常用的算法策略有五种。



前序:

暴力法也称枚举法,穷举法,蛮力法;是我们一般不自觉会使用的,比较简单。根据问题枚举所有可能的的解,检查每个可能是否正确。

使用暴力法求解的问题

选择排序

冒泡排序

顺序查找


一,分治法

把一个复杂问题分成多个相同或者相似的子问题,分而治之;所有子问题的解就是原问题的解。分治常常跟递归一起使用。

使用分治法求解的问题

快速排序

合并排序

二分查找 


二,动态规划法

把一个问题分解成若干个子阶段问题,按顺序求解子阶段,前一子问题的解,为后一个子问题求解提供有用的信息;在求解任一子问题时,列出各种可能的局部解,通过决策保留可能最优局部解,最后一个子问题就是原问题的解。

下图求最短路径:

五大常用算法策略

第一阶段

S到A到T保留最优解:1+4+18

第二阶段

S到B到T保留最优解:2+16+2

第三阶段

S到C到T保留最优解:5+2+2

最后保留3个局部最优解

5+2+2


三,贪心法

在对问题求解时,总是做出在当前看来是最好的选择,不从整体最优考虑。

上图求最短路径,每个阶段都选择最好,1+4+18,不是整体最优解。


四,回溯法

     枚举尝试求解过程,尝试过程中寻找问题的解,当发现不满求解条件,就回溯返回;尝试别的路径。走不通就退回再走。

    

五,分支界定法

广度优先搜索。


以上是关于五大常用算法策略的主要内容,如果未能解决你的问题,请参考以下文章

五大常用算法:贪心算法

五大常用算法之贪心算法

五大常用算法之三:贪心算法

五大常用算法之一:动态规划算法

Java五大常用算法

算法学习五个常用算法概念了解