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

本文介绍了算法的5大特性,并详细讲解了时间复杂度和空间复杂度的概念。通过实例分析了常见时间复杂度的比较,强调在程序设计中,合理评估和优化时间复杂度的重要性。同时,解释了空间复杂度的定义,指出在算法中临时占用的存储空间是关键。最后,提出在实际开发中,平衡时间和空间的关系以找到最佳解决方案。
摘要由CSDN通过智能技术生成

掌握算法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、付费专栏及课程。

余额充值