算法分析与设计-第02章.ppt

算法设计与分析 主讲 王海艳 计算机学院 wanghy@njupt.edu.cn 2.1 算法复杂度 2.1.1 什么是好的算法 一个好的算法应具有以下4个重要特性: 正确性(correctness):算法的执行结果应当满足预先规定的功能和性能要求。 简明性(simplicity):算法应思路清晰、层次分明、容易理解、利于编码和调试。 效率(efficiency):算法应有效使用存储空间,并具有高的时间效率。 最优性(optimality):算法的执行时间已达到求解该类问题所需时间的下界。 2.1.2 影响程序运行时间的因素 2.1.3 算法的时间复杂度 时间复杂度 一个算法的时间复杂度(time complexity)是指算法运行所需的时间。 设有一个在抽象机上运行的算法A,I是某次运行时的输入数据,其规模为n,则算法A的运行时间T是n和I的函数,记做T(n, I)。又设在该次运算中抽象机的第i个基本运算Oi的执行次数为?i,1≤i≤m,?i也是n和I的函数,记做?i(n, I)。那么,算法A在输入为I时的运行时间是: 2.1.4 使用程序步分析算法 通过程序步来分析算法的时间复杂度: 2.1.5 算法的空间复杂度 2.2 渐近表示法 程序步的精确计算是困难的,且程序步并不能确切反映程序运行的实际时间。 因此引入渐近时间复杂度,使用程序步在数量级上估计一个算法的执行时

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档