本文主要是介绍2013年软件设计师考试知识结构(九),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第九章 算法设计与分析
算法设计与分析的基本概念
算法
是对特定问题求解步骤的一种描述,它是指令的有限序列.其具有又穷性、确定性、可行性、输入、输出5个特性.
算法设计
正确性、可读性、健壮性和高效性等.
算法分析
算法分析是对一个算法所需要的资源进行估算.
算法的表示
算法的表示方法有自然语言、流程图、程序设计语言和伪代码.
算法分析基础
时间复杂性
渐进符号
渐进上界(O)、渐进下界(Ω)、渐进确界(Θ)
递归式
递归算法的时间复杂度分析方法:展开法、代换法、递归树法和主方法(主定理)
分治法
递归的概念
分治法的基本思想
将一个难以直接解决的大问题分解成一些规模较小的相同问题.
分治法的典型实例
归并排序和最大子段和问题.
动态规划法
动态规划法的基本思想
将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题得到原问题的解;其分解得到的问题往往不是独立的;其通常用于求解具有某种最优性质的问题.
动态规范法的典型实例
0-1背包问题、最长公共子序列(LCS)
贪心法
贪心法的基本思想
在解决问题的策略上是仅根据当前已有的信息做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变,换而言之,贪心法并不是从整体最优考虑,它做出的选择只是在某种意义上的局部最优;这种局部最优选择并不能保证总能获得全局最优解,但通常能得到较好的近似最优解.
贪心法的典型实例
活动选择问题、背包问题.
回溯法
以深度优先的方式系统地搜索问题的解的方法
回溯法的算法框架
首先应该明确定义问题的解空间,再将解空间很好地组织起来,使得用回溯法能方便地搜索整个解空间.
回溯法的典型实例
0-1背包问题、n-皇后问题.
0
其他算法
分支界限法
回溯法的求解目标是找出T中满足约束条件的所有解,而分支界限法的求解目标是找出满足约束条件的一个解;其是以广度优先或最小耗费优先的方式搜索解空间树.
概率算法
近似算法
放弃最优解,而用近似最优解代替最优解,以换取算法设计上的简化和时间复杂度的降低.这篇关于2013年软件设计师考试知识结构(九)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!