时间复杂度

  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倍,这个复杂度高于线性低于平方

    例子:归并排序