大O记法

用于表示某个算法的性能级别。

大O记法默认是 最坏情况

O(1) 表示无论面对多大的数据量,其步数都是固定值。

O(N) 表示操作N个数据量的步骤是N。所以数据越多,步骤越多。O(N) 也被称为 线性时间

O(log N) 表示二分查找的时间复杂度,介于 O(1)O(N)之间,称为 对数时间

简单的讲,O(log N) 算法的步骤等于二分数据直至元素剩余1个的次数。

所以当数据量翻倍的时候,二分法也只多了一步,这就是为什么用 log 表示。

O(1) 的效率比 O(N) 的效率高,因为当数据量超过两者相等的临界点,直到无穷大,后者比前者花更多的步数,总体而言,后者效率低。