算法的设计模式

概述

分析方法总结:

  1. 排序
  2. 递归
  3. 分而治之
  4. 动态规划
  5. 贪婪算法
  6. 排除法
  7. 逐步改进

1. 排序

遇到数组问题,第一反应就是先排序

2. 递归

当一个大问题能够分解成多个结构相同的子问题时,使用递归处理

3. 分而治之

把问题分解成若干个规模更小的子问题。如果子问题容易解决,那么解决子问题后,把所有结果整合起来便形成原有问题的解。
归并排序是典型的分而治之策略。

4. 动态规划

动态规划主要用来处理最优化问题,当题目中出现类似“成本最少”,“路径最短”等表示求极值的意思时,就必须要考虑动态规划。

5. 贪婪算法

贪婪算法也是解决最优化问题的一种算法模式。它的思想是,要达到全局最优化,可以尝试让每个局先达到最优化,然后看整体是否能达到最优化。
最小生成树、霍夫曼编码、最小点集覆盖等问题都可以用贪婪算法求解。

6. 排除法

排除法的核心是不断去掉不满足条件的结果,直到剩下能够满足条件的结果。
二分查找法是排除法最经典的应用。

7. 逐步改进

当用遍所有方法都不能找到问题最优解时,可以退而求其次,先找一个次优解,然后通过反复调整和不断改进,让次优解越来越接近最优解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值