软考08:算法设计与分析(待更)

一、算法设计与分析基础
1、算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作
五个特性:有穷性、确定性、可行性、输入、输出
2、算法设计
通常设计一个好的算法应考虑达到以下目标:正确性、可读性、健壮性、效率与低存储量需求
常用算法设计技术主要有迭代法、穷举搜索法、递推法、贪心法、回溯法、分治法、动态规划法
3、算法分析
是指对一个算法所需要的资源进行估算,这些资源包括内存、通信带宽、计算机硬件和时间等,所需要的资源越多,该算法的复杂性就越高
4、算法的表示
常用的表示算法的方法有以下几种:
(1)自然语言
(2)流程图
(3)程序设计语言
(4)伪代码
5、时间复杂性
算法的时间复杂度分析主要是分析算法的运行时间,即算法所执行的基本操作数
6、渐进符号
7、递归式
从算法的结构上看,算法可以分为非递归式算法和递归式算法
二、分治法
1、递归的概念
递归是指子程序或函数直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的常用方法
2、分治法的基本思想
是将一个难以解决的大问题分解成一些规模较小的相同问题,以便各个击破,分而治之
3、典型应用:Hanoi塔问题
三、动态规划法
基本思想:将待求解问题成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解
四、贪心法
五、回溯法
六、其他
1、分支限界法
2、概率算法
3、数据挖掘算法
4、智能优化算法

你可能感兴趣的:(软考笔记)