时间复杂度和空间复杂度分析

一、时间复杂度
1.最常见的时间复杂度(注意:只看最高复杂度的运算)
O(1):常数复杂度;
O(log n):对数复杂度;——>for循环或者while循环中与n的乘阶有关
O(n):线性时间复杂度;——>单循环
O(n^2):平方;——>嵌套循环
O(n^3):立方;
O(2^n):指数;——>递归计算斐波拉契数列
O(n!):阶乘;
2.递归时间复杂度分析(画出树的分析树)
在这里插入图片描述

每增加一层就要增加2^n次运算;
a.使用主定理来计算递归函数的时间复杂度
二分查找:O(logn);
二叉树的遍历:O(n):每个节点都需要访问一次;
排好序的二维矩阵中进行二分查找:O(n)
归并排序:O(nlogn)
3.常见面试题
a.二叉树遍历,前序、中序、后序的时间复杂度
都是O(n)
b.图的遍历的时间复杂度
O(n)——>将遍历树或者图中的每一个节点,并且每一个节点只访问一次;
c.搜索算法(DFS、BFS的时间复杂度是多少)
O(n)
二、空间复杂度
主要是看算法在运行过程中需要创建多少个与n变量相关的临时变量;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值