【王道数据结构|算法时间,空间复杂度】

一、算法的基本概念

程序=数据结构+算法

数据结构:需要处理的信息

算法:求解问题的步骤

1.算法的特性

1)有穷性

2)确定性:对于相同的输入一定要有相同的输出

3)可行性:操作通过已经实现的基本运算执行有限次

4)输入

5)输出

好算法的特质:

1.正确性

2.可读性 hhh说不写注释代码是piece of shit

3.健壮性:对非法数据进行处理

4.高效率和低存储需求

高效率:时间复杂度低,低存储需求:空间复杂度低

二、时间复杂度:

事前预估算法时间开销T(n)与问题规模n的关系

算法的时间开销表达式可以只考虑阶数高的部分(抓大头hhh)

抓大头T(n)=O(n),O表示同阶,当n趋于无穷T(n)与O(n)之比为常数

常<对<幂<指<阶

顺序执行执行的代码只会影响到常数项,在n趋于无穷的时候可以忽略

只需要看循环里面的基本操作分析它的额执行顺序与n的关系就行

如果有多层嵌套循环只需要关注最内层循环循环了几次 

三、空间复杂度:

程序代码+数据

算法原地工作:算法所需内存空间为常量S(n)=O(1)

普通程序:x的数量级O(x)就是算法空间复杂度S(n)

递归程序:空间复杂度=递归调用的深度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值