常用的算法设计方法

算法设计与分析是计算机科学的核心问题。

常用的算法设计方法有:

穷举法
Ø将问题空间中的所有求解对象一一列举出来,逐一分析、处理,并验证结果是否满足给定的条件。(例:C++switch语句)
回溯法
Ø将问题的候选解按某种顺序逐一枚举和检验,来寻找一个满足预定条件的解。当发现当前候选解不可能是解时,就退回到上一步重新选择下一个候选解(回溯)。(例:八皇后、迷宫、深度优先搜索)
分治法和递归法
Ø遇到一个难以直接解决的大问题时,将其分割成一些规模较小的子问题,以便各个击破,分而治之,然后把各个子问题的解合并起来,得出整个问题的解。(例:快速排序、归并排序、二分检索等)
贪心法和动态规划法
Ø贪心法的基本思想是从问题的初始状态出发,依据某种贪心标准,通过若干次的贪心选择而得出局部最优解,寄希望于局部的最优解构建最终的全局最优解。(Prim和Kruskal算法、Dijkstra算法)
Ø动态规划是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。动态规划法和分治法相似?区别?(例:Floyd算法、矩阵连乘积)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值