02时间复杂度和空间复杂度

BIg O notation

O(1):Constant Complexity 常数复杂度

O(log n): Logaritgmic Complexity 对数复杂度

O(n): Linear Complexity 线性时间复杂度

O(n^2): N square Complexity 平方

O(n^3): N square Complexity 立方

O(n!): Factorial 阶乘

注意: 只看高复杂度的运算

例1:

第二个 不管运行几次都是常数级的 只能说是 常数级复杂度 或者是 O(1)

时间复杂度 和 n是线性关系 因此 记作O(n)

第二个 假如 n=100; 则  100*100  因此复杂度是  O(n^2)

第一个:   n=100   i执行到10次   n=4  i执行到2次   因此  复杂度就是O(log(n))

第二个  O(k^n)  k是常数

时间复杂度曲线图:

 降低时间复杂度的例子:

 第二个因为只执行一次: 所以复杂度就是O(1)

求斐波拉契数列的第n项

 由下图可以看出上面这种写法会直接把复杂度变成指数级的,

 建议用循环  或者是  构建一个缓存 

主定理求时间复杂度:

 1.二分查找,一般发生在一个数列本身有序的时候,在有序数列中查出你要的目标数,所以每次都一分为二,最后时间复杂度是  log(n)

2.二分遍历查找,它没一边是相等的时间复杂度这么下去 T(n) = 2T(n/2)+O(1)这样

3.一个排好序的二位矩阵进行二分查找;O(n)

4.归并排序; Nlogn的时间复杂度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值