时间复杂度和空间复杂度简单介绍

目录

大O的渐进表示法:

时间复杂度计算:

空间复杂度:


衡量算法的好与坏

平常所说的复杂度都是算法最坏情况下的

大O的渐进表示法:

1  用1代替加法常数

2  运行次数不断扩大后,只保留阶数最高项

3 将最高阶项的系数改为1

时间复杂度计算:

算法的与运行时间和语句执行次数成正相关;

主要关注函数中循环的次数

例子:1

第一个循环运行了 n^2,第二个循环运行了 2n 第三个循环运行了  10,sum=n^2 + 2n + 10; 经过处理后这个函数的时间复杂度为O(n^2)

2

时间复杂度为O(n)

3

时间复杂度:O(M+N)

4

复杂度:O(1);因为可以看出这个循环共进行了100次,加法常数要变为1,所以为O(1)

5

这个冒泡排序,第一次执行了n-1次,第二次执行了n-2次,第三次执行力n-3次,直到执行1次,是个等差数列求和,最终结果为:O(n^2);

等差前n项和公式:

或者首项加尾项乘以项数除以二;

6

二分查找,当有4个数的时候需要进行两次循环,8个数需要进行三次循环,16个数需要进行四次循环,即假设需要循环次数为x,我们可以发现等量关系,个数除以2^x等于1,解出x,为log以2为底n为指。(n是指数据个数)

7

O(N);

8

类似这样:

我们认为N=5的时候有五层,那么循环次数就是2^0+2^1+....+2^(n-1);(最后一层不满2^(n-1))粗略就算即可,这个是个等比数列,最终结果为:2^n

等比数列求和公式:

空间复杂度:

主要计算原数组申请变量空间的个数,其他的局部变量均为常数可以看作1

例子1:

一直在对原数组进行操作所以空间复杂度为O(1)

2

动态开辟了n+1个空间,所以空间复杂度为O(n)

3

每次递归都要在栈上开辟空间,因此递归的空间复杂度还取决于递归的次数,这题空间复杂度为O(n)

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值