算法简介
定义:描述求解某个问题的步骤(计算机指令)
算法基本特性:
(输入、输出、有穷性、确定性、可行性)
- 输入、输出:算法具有零个或多个输入,至少有一个输出
- 有穷性:算法在执行有限的步骤之后,自动退出不会无限循环,且每一个步骤在可接受的时间完成
- 确定性:相同的输入只有一个的输出
- 可行性:算法的每一步都能通过执行有限的次数完成
算法设计要求:
-
正确性——能正确处理问题
无语法错误
对于合法的输入能产生满足要求的结果
对于非法的输入能产生符合规格说明的结果
对于刁难的测试数据能产生满足要求的结果 -
可读性
-
健壮性
输入数据不合法时,算法也能做出相关处理 -
时间效率高和储存量低
即算法执行省时(时间复杂度低)、省内存(空间复杂度低)
算法效率的度量方法
1、事后统计
通过测试程序和数据,利用计时器对不同算法编制的程序的运行时间行进比较,确定算法效率的高低
缺点:统计结果会受外部因素影响
2、事前分析估算
在编制程序之前,依据统计方法对算法进行估算