算法分析-算法复杂度

时间复杂度

代码运行的时间,代码中循环次数太多或嵌套多层,运行时间就不好估算。我们可以把核心操作次数和输入规模关联起来
两个算法:
存在一个输入规模N,当N逐渐增大时

  1. 算法的时间复杂度与算法函数的常数没有关系
  2. 算法的时间复杂度与算法函数的最高次项有关系,其它项可以忽略
  3. 算法的时间复杂度与算法函数的次项没有关系

时间复杂度可以使用大O记法,用程序核心执行次数来表示程序运行时间

  1. 用常数1取代运行时间中所有加法常数
  2. 在修改后的运行次数中,只保留高阶项
  3. 最高阶项存在,且常数因子不为1,则去除与这个项相乘的常数

时间复杂度
O(1)<O(logn)<O(n)<O(nlogn)
<O(n^2)
< O(n^3)
<O(2^n)

空间复杂度

一个对象,64位系统中对象头占16个字节。
对于一个数组,64们系统中对象头占16个字节,长度占4字节。以8字节进行补齐,所以占24字节

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值