【算法】算法复杂度分析初步

复杂性分析初步:

计算复杂性体现在算法占用机器空间资源和时间资源的情况,是关于选定模型下输入数据规模的函数。起决定作用的是这些函数当输入数据规模趋于无穷大时的渐进性态。

 主要内容:

1、空间复杂性

2、时间复杂性

3、渐进函数

4、1、2阶递归函数求解

5、the master method

一、空间复杂性:(内存需求)

  • 指令空间:存储编译后的程序指令
  • 数据空间:存储所以常量和变量的值
  • 环境栈空间:保存函数调用返回时恢复运行所需要的信息
  • 例子:

【算法】算法复杂度分析初步

二、时间复杂性:(程序运行时间)

  • 程序所占时间Tp =编辑时间+运行时间(编译时间与实例特征无关,主要关注运行时间)
  • 估算运行时间的方法:
  1. 关键操作计数
  2. 总的执行步统计
  • 约定:每种基本操作所用时间都是一个单位。
  • 复杂性函数:f (n), 当它以某一个多项式函数p (n) 为上界时,称为好算法(或叫有效算法)。
  • 例子:

1、关键操作计数:选择关键操作,统计次数

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

平均时间复杂度:

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

2、统计执行步数:按程序步、执行语句统计

【算法】算法复杂度分析初步

 

例子:

【算法】算法复杂度分析初步

 

三、渐进函数:

【算法】算法复杂度分析初步

1、渐进上界:

【算法】算法复杂度分析初步

2、渐进下界:

【算法】算法复杂度分析初步

3、渐进同阶:

【算法】算法复杂度分析初步

4、例子:

折半搜索

【算法】算法复杂度分析初步

四、1、2阶递归方程求解

【算法】算法复杂度分析初步

五、The master method

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

【算法】算法复杂度分析初步

你可能感兴趣的:(算法)