时间复杂度和空间复杂度的理解

时间复杂度和空间复杂度的理解

作者在看完一位up主的视频后,写下此文,仅仅只是学习,绝无抄袭剽窃之意,写下此文只为锻炼自己,尽量用自己的话把道理讲出来,侵删。

原视频链接:https://www.bilibili.com/video/BV14j411f7DJ?from=search&seid=9536159932271274742&spm_id_from=333.337.0.0

1.时间复杂度,空间复杂度本质上是时间和空间在增长上的趋势

2.时间复杂度、空间复杂度通常用来衡量、判断一个算法的好坏

1时间复杂度

通常用大O表示法来表示

在这里插入图片描述

例如这个简单的循环,i=1执行1次,i<=n ,i++,x++走一圈,需要执行3个语句,一共3次,随着循环进行需要n圈,一种执行3n+1次。通常我们认为n接近于无限大,那么这时它的时间复杂度即可简化为O(n)。

在这里插入图片描述
在这里插入图片描述

再来看一个例子:

一个双循环,那么执行的次数就是n*n,也就是n2,n的平方次,那么它的时间复杂度就是O(n2)

在这里插入图片描述

下面这个例子,他的复杂度是 n+n2,但是当n足够大时,n在n2面前就失去了意义,所以可以简化为O(n^2)
在这里插入图片描述

在看一个例子,i每次扩大2倍,当i >= n时停止,要执行多少次呢?

假设需要k次,一个公式可以帮助理解,那就是2^k = n

那么log 2 {n} = k,则这个复杂度就是log 2 {n} = log n ,(默认log的底数是2)
在这里插入图片描述

2空间复杂度

表示内存空间的增长趋势,常用以下3个来表示。

在这里插入图片描述

首先是O(1),每执行一句,都只是花费一个常量的空间;
在这里插入图片描述

接着是O(n)的复杂度,我们给定一个数组,长度为n,那么执行、完成它就需要n个空间,它的空间复杂度就是O(n).
在这里插入图片描述

然后就是O(n2)的复杂度,从上面例子可以类推,我们定义一个二维数组,n行n列,那么就是需要n2个空间,复杂度就是O(n^2).

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值