五大常用算法策略
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,不是整体最优解。
四,回溯法
枚举尝试求解过程,尝试过程中寻找问题的解,当发现不满求解条件,就回溯返回;尝试别的路径。走不通就退回再走。
五,分支界定法
广度优先搜索。
以上是关于五大常用算法策略的主要内容,如果未能解决你的问题,请参考以下文章