数据结构与算法专题汇总(一)复杂度分析(均摊时间复杂度)

1.基础介绍

1.数据结构
一组数据的存储,组织结构
2.算法
操作数据的一组方法

2.复杂度分析

2.1.时间复杂度
多项式量阶复杂度非多项式量阶复杂度
常量阶 O(1)指数阶 O(2^n)
对数阶 O(logn)阶乘阶 O(n!)
线性阶 O(n)
线性对数阶 O(nlogn)
平方阶 O(n^2) 立方阶O(n^3) k次阶。。。

非多项式量阶的问题为非确定多项式问题,即NP问题

  1. O(1) 即代码的执行时间与n无关,执行此处往往是一个确定值,算法中不存在循环和递归时往往为n
  2. O(logn) O(nlogn)
	while (i <= n){
		i = i *2
	}

2^0 * 2^1 * … 2^x = n
x = log2n
统一用logn
一段logn的代码再重复n次,即为nlogn

  1. O(m+n) O(m*n) 无法评估m和n哪个大,都不能省略
2.2 空间复杂度

表示算法的存储空间与数据规模之间的增长关系
常见的的有:
O(1) O(n) O(n^2)

2.3 均摊时间负责度

平均时间复杂度为加权的一个平均值,即数学期望
均摊时间复杂度:
如数组满之后进行一个整体的扩容,因为要把数组内的n个数据全部移到一个新的连续内存空间,要进行n次操作,消耗时间为o(n),新的内存大小为2n。
而当对接下来的n-1个数据进行操作时,都只需要1的时间,如果把移动的那n时间,平均分摊到之后的n-1次插入操作上,那么分摊下来的时间复杂度仍然是o(1)。
一般情况下,均摊时间复杂度 = 最佳时间复杂度。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值