数据结构:时间复杂度和空间复杂度如何理解,程序中如何计算

掌握算法5大特性

运用到程序的解释):
有穷性: 程序要可以执行完,不能进入死循环
确定性: 程序所得的结果就是这个方法定义的,不能要A得B
可行性: 程序可以通过基本运算正常执行成功,不能出现1/0违背数学的情况
有输入:有参数
有输出:有返回值
不符合上述情况的我们可以称作是程序,但不代表它是算法!

时间复杂度

首先从图中了解常用时间复杂度的一个大小:
在这里插入图片描述

O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2^n)<O(n!)

从图中很直观可以看到,
O(1) 是最小的,也就是并没有循环
O(logn) 可以了解下二分查找法(折半查找),推导数学公式,来换算成对数log ,即:

n * (½)^k = 1
n * 1/2^k = 1
n = 2^k
log2^n = k

O(n)围绕问题规模n循环一次
O(nlogn)可以了解下归

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值