一、概述
目的,比较不同算法,从而能够选择高效算法。
后继课程:《算法设计与分析》《可计算性》《计算复杂性》
二、概念
时间复杂性:利用某算法处理一个问题规模为n的输入所需要的时间。
空间复杂性:利用某算法处理一个问题规模为n的输入所需要的存储空间。
算法复杂性阶的概念:如果对某一正常数C,一个算法在时间Cn2内能处理规模为n的输入,则称此算法的时间复杂性是0(n2),读作“n2阶”,即该算法的时间复杂性与n2是同阶的。
目前在具体讨论时间复杂性时,又具体考虑两种情况:
最坏情况的时间复杂性:最差的情况
平均情况的时间复杂性:期望、概率复杂性
但由于规模为n的“输入”出现的概率有所不同,所以需要考虑加权平均特性。
为了求平均特性,必须对输入量的分布作某种假设。而切合实际情况的假设,数学上往往不易处理。因此,确定平均特性比确定最坏复杂性难,即须考虑各种情况下的加权因素,计算困难,所以一般在理论上所说的平均性能都是指的算术平均。
三、复杂性的分析步骤
- 时间复杂性(度):
- 根据问题特点,选择标准操作(最频繁)计算操作次数
- 分析次数建函数
- 找出阶
- 空间复杂性(度):附加空间