《算法设计与分析基础》Chapt 2 算法效率分析基础

2.1 分析框架

2.1.1 输入规模的度量

  • 大多数情况,以输入数n
  • 矩阵,维数
  • 数值算法,数字的比特数

2.1.2 运行时间的度量单位

  1. 找出算法中最重要的操作,即基本操作
  2. 计算他们的运行次数

2.1.3 增长次数

logn      n        nlogn        n2       n3       2n        n!

2.1.4 算法的最优、最差和平均效率

  • 最优效率
  • 最差效率
  • 平均效率
  • 摊销效率

2.2 渐进符号和基本效率类型

2.2.1 介绍Ο,Ω,Θ

Ο (g(n))是增长次数小于等于g(n)的函数集合

2_1

2_2

Ω (g(n))是增长次数大于等于g(n)的函数集合

2_3 

Θ(g(n))是增长次数等于g(n)的函数集合

2.2.2 符号Ο

2.2.5 渐进符号的有用特性

theory1

2.2.6 利用极限比较增长次数

 formula1

前两种情况:t1

后两种情况:t2

第二种情况:t3

2.2.7 基本的效率类型

2.3 非递归算法的数学分析

分析非递归算法效率的通用方案:

  1. 决定用哪个(些)参数作为输入规模的度量
  2. 找出算法的基本操作(作为一个规律,它总是位于算法的最内层循环)
  3. 检查基本操作的执行次数是否只依赖输入规模。如它还依赖一些其他的特性,如输入顺序等,则最差效率、平均效率以及最优效率需要分别研究。
  4. 建立一个算法基本操作执行次数的求和表达式
  5. 利用求和运算的标准公式和法则来建立一个操作次数的闭合公式,或至少确定它的增长次数。

求和运算的两个基本规则:

formula2

两个常见求和公式:

formula3

2.4 递归算法的数学分析

递推式的形式来表达基本操作次数

  1. 决定用那些参数作为输入规模的度量
  2. 找出算法的基本操作
  3. 检查一下,对于相同规模的不同输入,基本操作的执行次数是否不同。如果不同,则必须对最差效率、平均效率以及最优效率作单独研究
  4. 对于算法基本操作的执行次数,建立一个递推关系以及相应的初始条件
  5. 解这个递推式,或者至少确定它的解的增长次数
posted @ 2007-11-06 15:03  中土  阅读(1668)  评论(0编辑  收藏  举报
©2005-2008 Suprasoft Inc., All right reserved.