算法分析

113 阅读1分钟

算法是为逐步解决问题而设计的一系列通用指令,给定某个输入,算法就能得到对应的结果--算法就是解决问题的方法。

算法分析关心的是基于所使用的计算资源比较算法。

计算资源有两种思考方式,一种是考虑算法在解决问题时要占用的空间或内存(空间复杂度),另一种是根据算法执行所需的时间进行分析和比较(时间复杂度)。

大O记法

如果将计算总和所用的赋值语句定义为T(n)=1+n的话,参数n被叫做问题规模,这个函数可以理解为“当问题规模为n时,解决问题所需要的时间是T(n),即需要1+n步”。

随着问题规模的增长,当n增长时,T(n)函数的某一部分会比其余部分增长的快。用数量级函数描述的是,当n增长时,T(n)增长最快的部分。数量级常被称作大O记法,记作O(f(n))。

image.png 算法的性能有时不仅依赖于问题规模,还依赖于数据值,对于这种算法,要用最坏情况、最好情况、普通情况来描述性能。最坏情况指的是某一个数据集会让算法的性能极差,那么最好情况就是值性能最佳,介于两个极端之间的就是普通情况

Python列表操作的大O效率

image.png

Python字典操作的大O效率

image.png