O后面的括号中有一个函数指明某个算法的耗时/耗空间与数据增长量之间的关系。其中n代表输入数据的量
O(1)-就是最低的时间复杂度
例子:哈希算法,无论数据规模多大,都可以在一次计算后找到目标(不考虑哈希冲突)
O(n)-代表数据量增大n倍,耗时也增大n倍(线性)
例子:找到一个数组里最大的数,需要把n个变量都扫一边,操作次数也为n
O(n^2)-代表数据量增大n倍时,耗时增大n^2倍
例子:冒泡排序-对n个数排序,需要扫描n^2次
O(log n)-当数据增大n倍时,耗时增大log n倍,(这里log是以2为底,当数据增大256倍,耗时只增大8倍)
例子:二分查找就是
O(n log n)-就是n乘以logn,当数据增大256倍时,耗时增大256*8 = 1028倍,这个复杂度高于线性低于平方
例子:归并排序