算法复杂度描述中为什么用“logn”,而不用“log2n”、“lnn”或“lgn” (转)
问题
算法复杂度描述中为什么用“logn”,而不用“log2n”、“lnn”或“lgn”
原因
假如有logaB(a为底数),由换底公式可得:
logcA(c为底数)为常数,
由O的运算规则"O( C × f(N) )=O( f(N ) ),
其中C是一个正的常数"
得O(logaB)=O(logcB)
可知算法的时间复杂度与不同底数只有常数的关系,均可以省略自然可以用logN代替。