软考——算法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xsh096011/article/details/82721795

算法:对特定问题求解步骤的一种描述;它是指令的有限序列;在一定规范内输入,在有限时间内获得所要求的输出;

特点

1)有穷性:一个算法总是在执行有穷步之后结束,每一步都可以在有穷时间内完成;
(有穷步,有穷时间);
2)确定性:算法每条指令必须有确切的含义;且算法只有唯一的一条执行路径;
3)可行性:算法中描述的操作都可以通过已经实现的基本运算的有限次执行有限次来实现;
4)输入:一个算法有零个或多个输入,这些输入取自某个特定的对象的集合;
5)输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量;


一个好的算法需要满足以下条件:
1)时间复杂度最优化;
2)空间复杂度最优化;
3)正确性;
4)可读性;
5)健壮性:指一个算法对不合理数据输入的反应能力和处理能力(容错能力);


迭代法

不断用变量的旧值递推新值的过程;(分为近似迭代和精确迭代)(例如:二分法就是近似迭代法)

穷举搜索法

对于要解决的问题,列举出所有可能情况,逐个判断哪些是符合问题所要求的条件,从而得到问题的解;
(适用于规模不大,没有合适算法的情况)

递推法

通常通过计算机前面的一些项得出序列中指定项的值;通过前面的值推出后面的值;

递归法

方法调方法;程序调用自身;

分治法

把一个复杂的问题分成多个相似的子问题,再分解,直到子问题可以简单直接求解;
分而治之;将问题分解、解决、合并;

动态规划法

求解包含重叠子问题的最优化问题的方法;具有一个标准数学表达式和明确清晰的解题方法;

回溯法

这里写图片描述
选择好的条件向前搜索,以达到目标,当搜索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择;
(当前层找不到解决问题的办法就返回上一层,继续查找)

贪婪法(贪心算法)

逐步构造最优解的方法;

分支界限法

对有约束条件的最优化问题的所有可行解进行空间搜索,在界定范围内寻找可行解;
(类似于高中寻找最优解的问题)

概率算法

算法在执行过程中随机选择下一个计算步骤;

猜你喜欢

转载自blog.csdn.net/xsh096011/article/details/82721795
今日推荐