今后将开启一栏数据结构的专题栏目,记录自己的数据结构的学习成果-- 2020-5-28
算法的时间复杂度,比较俩个算法的时间复杂度时,常常使用极限的思想来比较,如T(n1)的算法为 n
T(n2)的算法为n平方 那么根据极限的比较 lim x->无穷 n/n的平方 等于 1/n =0 这样 我们就说 T(n1)是T(n2 )的高阶无穷小 及 T(n1)的时间复杂度相对于 T(n2 )来说 是更简单的
计算一个算法的 T(n)时 只需要计算它的最高次幂 如 T(n)= x的n次方 + x +3000 那么它也是等于 x的n次方
比较俩个算法的 T(n)时 可以使用简单的口诀 “常对幂指阶” 来进行快速计算
例题:以下T(n)表示各算法中最耗时操作的执行次数,n表示数据量,请按照时间复杂度从小到大排列,正确的是()。
T1(n) = 100n + 200
T2(n) = 3n^2
T3(n) = 10000000
T4(n) = 300
A. T1<T2<T3<T4
B.T2<T1<T4<T3
C.T3<T4<T1<T2
D.T3<T1<T4<T2
通过 口诀我们可以快速的 算出 答案为C
口诀的坐标图:
在实际开发中,我们尽可能的减少我们算法的时间复杂度
如果一个软件的用户量有10万,代码中引用一层for循环 那么它的时间复杂度是O(n) =100000 如果代码中镶嵌for循环(俩层for循环)那么它的时间复杂度就是O(n的平方)=10万的平方 这么大的运算量,就算是很多服务器,也是很容易出问题的,所以在实际开发中,我们尽可能的减少我们算法的时间复杂度。