时间复杂度
好像是指不同算法中,对消耗的时间取决定性因素的值。用以判断不同算法间的忧虑,使用以下方法获得
- 如果运行时间是常数量级,用常数1表示;
- 只保留时间函数中的最高阶项;
- 如果最高阶项存在,则省去最高阶项前面的系数。
T(n) = 3n
最高阶项为3n,省去系数3,转化的时间复杂度为:O(n)
T(n) = 5logn
最高阶项为5logn,省去系数5,转化的时间复杂度为:O(logn)
T(n) = 2
只有常数量级,转化的时间复杂度为:O(1)
T(n) = 0.5n^2 + 0.5n
最高阶项为0.5n^2,省去系数0.5,转化的时间复杂度为:O(n^2)
这四种时间复杂度究竟谁用时更长
O(1)< O(logn)< O(n)< O(n^2)
减半最后剩下1需要多少次
log n
例如log 16 === 4
表示16每次减半需要4次才能剩下1