软件设计师考试 算法设计
算法的基本特性:有穷性,确定性,输入,输出,可行性。
影响算法执行效率的4个因素
1)回溯法
例子:从5个数中取出3个数的情况
贪婪法(贪心法)
(遵循找到的是每一步的最优解,但这些步骤合在一起不一定是整体最优解)
分支限界法(队列式分支限界法或优先队列式分支界限法)主要思想:以广度优先
例如分支限界法;单元最短路径算法(迪杰斯特拉算法)
概率算法
舍伍德算法一定会的到一个正确的结果
拉斯维加斯算法要不等不到结果,要不得到的结果一定是正确的
蒙特卡罗算法:得到的结果不一定是正确的,一般当多次得到的结果是同样的则认为是正确的。其正确性与算法执行的时间有关,时间越长正确性越高。
迭代法:
思想:找的的值每次越来越接近准确的值
穷举搜索法/枚举法:(适用于规模比较小的时候)
递推法
思想求4的阶乘时要先求3的阶乘即4*3!以此类推
递归法:(包含2个过程递推与递归的两个过程,当递推到终止条件时回归计算)
分治法:
分治法例如:二分查找法,汉诺塔问题
动态规划法:与分治法不同的是分解的子问题各个之间是有关连的。