数据结构:算法

五大特征:

  1. 又穷性:程序嘛,一定是要在有限的步骤之后就要停下来,不然电脑遭不住,会死机的
  2. 确定性:程序的每一步他都会有一个确定的结果。
  3. 可行性:程序的是否可行取决于当下的具体环境,比如计算机的计算能力、存储能力等。受这些条件的限制,有些算法在理论上是可以实现的,但是在现实中是没有办法完成的。
  4. 输入:就是我们敲进去的,电脑能够识别的一些数字,字符或者图像等等
  5. 输出:程序运行过程中或者结束后给我返回的信息

时间复杂度:

简单来讲,时间复杂度就是随着程序越来越复杂,执行程序的时间增长的快慢程度。在一定程度上,时间复杂度决定着这个算法的好坏。时间复杂度本质上就是一个问题规模的函数,记为T(n)

常用的时间复杂度大小关系:

复杂度的计算

找到算法时间增长最快的那个函数项,将他的系数改为1 。实际上,时间复杂度的计算是一个关于增长率的计算,更多的是关于数量级的讨论,相对于数量级来讲,一些常数项对结果的影响是非常小的,所以我们通常都可以将常数项忽略不计。

再细分下来,关于单个循环体的时间复杂度的计算,比如java里面的for循环,这个时候我们可以忽略其他,直接关注循环体内的执行次数即可,因为循环体内的程序是对整个程序的性能影响最大的。俗话说,擒贼先擒王嘛。

多个循环体的时间复杂度计算:

如果多个循环体相互独立,那么时间复杂度就是多者之间相加,如果是相互嵌套,那么就是相乘

 

空间复杂度:

其实定义上都是类似的,空间复杂度就是,随着问题规模的增大。所需要的空间增长的快慢程度,比如问题规模大了,就需要更多的内存或者磁盘的空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值