时间复杂度/空间复杂度O(1)、O(n)

1.名词解析

O(x):表示算法时空(时间/空间)的复杂度

O括号里的函数 x 表示:某个算法的耗时/耗空间与数据增长量之间的关系。其中O(n),O(n^2)等的 n 表示输入数据的量

2.O(1)

O(1),即是最低的时空复杂度。即,耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变
例:哈希算法,无论数据规模多大,都可以在一次计算后找到目标(不考虑冲突的话)

3.O(n)

时间复杂度为O(n),就代表数据量增大几倍,耗时也增大几倍
例:遍历算法,找数组里最大或最小的值,需要把数组的 n 元素遍历一次,操作 n 次

4.O(n^2)

时间复杂度O(n^2),就代表数据量增大n倍时,耗时增大n的平方倍
例:冒泡排序,双重for循坏,对n个数排序,需要扫描n×n次

5.O(log n)

当数据增大n倍时,耗时增大log n倍(这里的log是以2为底的,比如,当数据增大256倍时,耗时只增大8倍)
例:二分查找,每找一次排除一半的可能,256个数据中查找只要找8次就可以找到目标

6.O(n log n)

O(n log n)同理,就是n乘以log n,当数据增大256倍时,耗时增大256*8=2048倍
例:归并排序

猜你喜欢

转载自blog.csdn.net/xueguchen/article/details/108449337