算法分析概述
算法分析就是分析算法占用计算机资源的多少。而计算机资源主要是 CPU时间和内存空间,分析算法占用CPU时间的多少称为时间性能分析, 分析算法占用内存空间的多少称为空间性能分析。
算法分析的目的是分析算法的时空性能以便改进算法。
算法时间性能分析
通常有两种衡量算法时间性能的方法,即事后统计法和事前估算法。 事后统计法就是编写算法对应程序,统计其执行时间。一个算法用计
算机语言实现后,在计算机上执行所消耗的时间与很多因素有关,如计算机的运行速度、编 写程序采用的计算机语言、编译产生的机器语言代码质量和问题的规模等。这种方法存在 的缺点有两个,一是必须执行程序,二是存在很多因素掩盖了算法本质。
事前佔算法是撇开这些与计算机硬件、软件有关的因素,仅考虑算法本身的效率高低, 可以认为一个特定算法的•'运行T.作量”的大小只依赖于问题的规模(通常用整数〃表示), 或者说算法的执行时间是问题规模的函数,因此后面主要采用事前估算法来分析算法的时 间性能。