2. 算法和算法分析(Algorithm)
2.1 五个特性
2.1.1 有穷性
一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都在有穷时间内完成.
2.1.2 确定性
算法中的每一条指令必须有确切的含义,使读者理解时不会产生二义性.并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的结果.
2.1.3 可行性
一个算法是能行的,即算法中描述的操作都是通过已经实现的基本运算执行有限次来实现的.
2.1.4 输入
一个算法有零个或多个的输入,这些输入取自于某个特定的对象的结合.
2.1.5 输出
一个算法有一个或多的输出,这些输出是同输入有着特定关系的量.
2.2 算法设计的要求以及定义
2.2.1 正确性
算法应当满足具体问题的需求.
2.2.2 可读性
算法主要是为了人的阅读与交流,其次才是机器执行.
2.2.3 健壮性
当输入数据非法时,算法也能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果.
2.2.4 效率与低存储量需求
效率:算法执行的时间;存储量需求:指算法执行过程中所需要的最大存储空间.
2.2.5 定义
对特定问题求解步骤的一种描述.
2.3 算法效率的度量
时间复杂度
2.3.1 定义
算法基本操作所执行的次数
2.3.2 大O渐进表示法(Big o notation)
(1)用常数1取代运行时间中的所有加法常数.
(2)在修改后的运行次数函数中,自保留最高阶项.
(3)如果最高阶项存在且不是1,则去除与这个项目相乘的常数,得到的结果就是大O阶.
2.3.3 表示
T(n)=O(f(n))
2.4 算法的存储空间需求
空间复杂度
2.4.1 定义
是对一个算法在运行过程中临时空间占用存储空间大小的量度.
2.4.2 包括
(1)创建变量;
(2)开辟内存空间;
(3)是否借助辅助空间.
2.4.3 表示
S(n)=O(f(n))
DS_(2. 算法和算法分析(Algorithm))
最新推荐文章于 2022-11-04 08:09:15 发布