软件设计师考试 算法设计

本文介绍了算法的基本特性,包括有穷性、确定性、输入、输出及可行性,并详细探讨了多种算法设计方法如回溯法、贪心法、分支限界法、概率算法、迭代法、穷举搜索法、递推法、递归法、分治法、动态规划法等,通过实例解释了各种算法的特点和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法的基本特性:有穷性,确定性,输入,输出,可行性。

影响算法执行效率的4个因素

 

 

1)回溯法

例子:从5个数中取出3个数的情况

贪婪法(贪心法)

(遵循找到的是每一步的最优解,但这些步骤合在一起不一定是整体最优解)

分支限界法(队列式分支限界法或优先队列式分支界限法)主要思想:以广度优先

例如分支限界法;单元最短路径算法(迪杰斯特拉算法)

概率算法

舍伍德算法一定会的到一个正确的结果

拉斯维加斯算法要不等不到结果,要不得到的结果一定是正确的

蒙特卡罗算法:得到的结果不一定是正确的,一般当多次得到的结果是同样的则认为是正确的。其正确性与算法执行的时间有关,时间越长正确性越高。

 迭代法:

思想:找的的值每次越来越接近准确的值

穷举搜索法/枚举法:(适用于规模比较小的时候)

递推法

思想求4的阶乘时要先求3的阶乘即4*3!以此类推

 

 

递归法:(包含2个过程递推与递归的两个过程,当递推到终止条件时回归计算)

分治法:

分治法例如:二分查找法,汉诺塔问题

动态规划法:与分治法不同的是分解的子问题各个之间是有关连的。

转载于:https://www.cnblogs.com/zyt-bg/p/8350299.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值