五大常用算法思想
前言
据说有人归纳了计算机的五大常用算法,它们是贪婪算法,动态规划算法,分治算法,回溯算法以及分支限界算法。这五个算法是有很多应用场景的,最优化问题大多可以利用这些算法解决。算法的本质就是解决问题。当数据量比较小时,其实根本就不需要什么算法,写一些for循环完全就可以很快速的搞定了,但是当数据量比较大,场景比较复杂的时候,算法就尤为重要了,本文先归纳这几个算法及应用场景,随后在细细品味。
穷举法
1.定义
穷举法也叫枚举法, 在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这结论是可靠的,这种归纳方法叫做枚举法。枚举法是利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案,因此枚举法是通过牺牲时间来换取答案的全面性 。穷举法属于暴力破解法, 暴力破解法,就是把所有条件,相关情况统统考虑进去,让计算机进行检索,指导得出与之所有条件符合的结果 。
2.基本思想
- 确定枚举对象、枚举范围和判定条件
- 枚举可能的解,验证是否是问题的解
3.应用实例
- 百钱买鸡问题
- 鸡兔同笼问题
- 搬砖块问题
- 猜数字
- 韩信点兵