2013年软件设计师考试知识结构(九)

第九章 算法设计与分析

算法设计与分析的基本概念

算法

是对特定问题求解步骤的一种描述,它是指令的有限序列.其具有又穷性、确定性、可行性、输入、输出5个特性.

算法设计

正确性、可读性、健壮性和高效性等.

算法分析

算法分析是对一个算法所需要的资源进行估算.

算法的表示

算法的表示方法有自然语言、流程图、程序设计语言和伪代码.

算法分析基础

时间复杂性

渐进符号

渐进上界(O)、渐进下界(Ω)、渐进确界(Θ)

递归式

递归算法的时间复杂度分析方法:展开法、代换法、递归树法和主方法(主定理)

分治法

递归的概念

分治法的基本思想

将一个难以直接解决的大问题分解成一些规模较小的相同问题.

分治法的典型实例

归并排序和最大子段和问题.

动态规划法

动态规划法的基本思想

将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题得到原问题的解;其分解得到的问题往往不是独立的;其通常用于求解具有某种最优性质的问题.

动态规范法的典型实例

0-1背包问题、最长公共子序列(LCS)

贪心法

贪心法的基本思想

在解决问题的策略上是仅根据当前已有的信息做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变,换而言之,贪心法并不是从整体最优考虑,它做出的选择只是在某种意义上的局部最优;这种局部最优选择并不能保证总能获得全局最优解,但通常能得到较好的近似最优解.

贪心法的典型实例

活动选择问题、背包问题.

回溯法

以深度优先的方式系统地搜索问题的解的方法

 

回溯法的算法框架

首先应该明确定义问题的解空间,再将解空间很好地组织起来,使得用回溯法能方便地搜索整个解空间.

回溯法的典型实例

0-1背包问题、n-皇后问题.

0

其他算法

分支界限法

回溯法的求解目标是找出T中满足约束条件的所有解,而分支界限法的求解目标是找出满足约束条件的一个解;其是以广度优先或最小耗费优先的方式搜索解空间树.

概率算法

近似算法

放弃最优解,而用近似最优解代替最优解,以换取算法设计上的简化和时间复杂度的降低.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛_snail

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值