时间度复杂度计算

时间复杂度计算解析

本文仅叙述笔者自己的理解,如果大神看出了啥问题,欢迎指正!

归并排序例

归并排序的时间复杂度如下公式(在此不详述该公式,仅作为计算的基础)

T(n) = O(1) n = 1,
T(n) = 2T(n/2)+O(n) n > 1.

由于当n每次递归减半由2^x=n可以得到,递归步骤x=lgn,依次迭代可以得到:

T(n) = 2*2*2..2*2T(1)+O(n)+2*O(n/2)+2*2*O(n/4)+…

其中T(1)前面有x个2,后面同样有x项,化简并把O里面的除数提取出来可以得到:

T(n) = n + lgn*O(n)
T(n) = n + O(nlgn)

由上可以得到T(n)的时间复杂度为O(nlgn).
笔者才刚开始用Markdown,如果又觉得不顺眼的地方,还请见谅。

发布了30 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/lvmy3/article/details/53310663