算法的衡量

什么是算法?
用来处理运算和逻辑的问题的代码块
运行时间的长短和占用内存空间的大小是衡量算法好坏的重要标准
运行时间长短用时间复杂度来衡量
运行占用内存空间的大小用空间复杂度衡量
时间复杂度与空间复杂度
1.时间复杂度
即渐进时间复杂度,用O表示
时间复杂度就是程序的相对执行时间函数T(n)简化为一个函数方程表示,如T(n)=O(n)、T(n)= O(nlogn)
推导时间复杂度的原则:
*1)运行时间如果是常数,如:T(n)= 4,则用O(1)表示
*2)只用时间函数中的最高阶表示T(n)= n2+n3,则用O(n3)表示
*3)如最高阶存在,省略最高阶前系数T(n )=2logn,则用O(logn)表示
当n足够大时,时间复杂度越小越好
常见时间复杂度由低到高顺序:O(1)、O(nlogn)、O(n)、O(nlogn)、O(n2
2.空间复杂度
度量一个算法在运行中临时暂用存储空间的大小,用O表示
常见空间复杂度:
1)常量空间
存储空间固定,与输入n无关,空间复杂度为O(1)
2)线性空间
算法分配空间是集合,集合大小和输入规模n成正比
空间复杂度为O(n)
3)算法分配空间是一个二维数组集合,并且集合的长宽与n成正比
空间复杂度为O(n2
4)递归空间
递归一个特殊的场景,计算机会为递归专门分配内存,存储方法调用栈,有入栈,有出栈,存粹的递归操作空间复杂度是线性的,递归深度为n,空间复杂度为O(n)
常见空间复杂度由低到高顺序:O(1)、O(n)、O(n2

时间与空间的取舍
大多数时候,我们认为时间复杂度更为重要,即便多分配一些内存空间,也要提高运行速度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值