算法复杂度的含义

算法复杂度的含义

O(1)

输入数据增大多少倍,耗时/耗空间都不变。

哈希算法就是典型的 O(1) 时间复杂度,无论数据规模多大,都可以在一次计算后找到目标。

O(n)

数据量增大几倍,耗时也增大几倍

O(n^2)

数据量增大 n 倍时,耗时增大 n 的平方倍

O(logn)

当数据增大 n 倍时,耗时增大 logn 倍

例如:

		1. 数据增大 256 倍时,耗时只增大 8 倍(每次排除一半,只需排除8次)
	[256 / 2 = 128]     1次
	[128 / 2 = 64] 	  2次
	[64 / 2 = 32] 	    3次
	[32 / 2 = 16] 	    4次
	[16 / 2 = 8] 	      5次
	[8 / 2 = 4] 	         6次
	[4 / 2 = 2] 	         7次
	[2 / 2 = 1]		      8次
  1. 数据增大512倍时,耗时只增大16倍
    (这里的 log 是以2为底的,比如,当数据增大 256 倍时,耗时只增大 8 倍,是比线性还要低的时间复杂度)
    二分查找就是 O(logn) 的算法,每找一次排除一半的可能,256 个数据中查找只要找 8 次就可以找到目标
O(nlogn)

就是 n 乘以 logn,当数据增大 256 倍时,耗时增大256 × 8 = 2048倍。
当数据增大 512 倍时,耗时增大 512 × 16= 8192 倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值