常见的时间复杂度上与空见复杂度

常见的时间复杂度上与空见复杂度

时间复杂度

时间复杂度是衡量算法运行时间随输入规模增长而增加的速度的一种度量。通常用大O符号(O)表示。时间复杂度描述的是算法执行所需的时间与输入规模之间的关系。

  1. O(1):常数时间复杂度,表示算法的执行时间是一个常数,与输入规模无关。
  2. O(log n):对数时间复杂度,表示算法的执行时间与输入规模的对数成正比。
  3. O(n):线性时间复杂度,表示算法的执行时间与输入规模成线性关系。
  4. O(n log n):线性对数时间复杂度,常见于一些排序算法。
  5. O(n^2):平方时间复杂度,表示算法的执行时间与输入规模的平方成正比。
  6. O(2^n):指数时间复杂度,表示算法的执行时间与输入规模的指数成正比。

空间复杂度

空间复杂度是算法在运行过程中所需的存储空间与输入规模之间的关系。与时间复杂度类似,空间复杂度也通常用大O符号(O)表示。

  1. O(1):常数空间复杂度,表示算法的空间需求是一个常数,与输入规模无关。
  2. O(n):线性空间复杂度,表示算法的空间需求与输入规模成线性关系。
  3. O(n^2):平方空间复杂度,表示算法的空间需求与输入规模的平方成正比。
  4. O(log n):对数空间复杂度,表示算法的空间需求与输入规模的对数成正比

常见算法的时间复杂度与空间复杂度

  1. 冒泡排序(Bubble Sort)
    • 时间复杂度:O(n^2)(最坏和平均情况)
    • 空间复杂度:O(1)
  2. 选择排序(Selection Sort)
    • 时间复杂度:O(n^2)(最坏和平均情况)
    • 空间复杂度:O(1)
  3. 插入排序(Insertion Sort)
    • 时间复杂度:O(n^2)(最坏和平均情况)
    • 空间复杂度:O(1)
  4. 快速排序(Quick Sort)
    • 时间复杂度:O(n log n)(平均情况),O(n^2)(最坏情况)
    • 空间复杂度:O(log n)(平均情况),O(n)(最坏情况)
  5. 归并排序(Merge Sort)
    • 时间复杂度:O(n log n)
    • 空间复杂度:O(n)
  6. 线性搜索(Linear Search)
    • 时间复杂度:O(n)
    • 空间复杂度:O(1)
  7. 二分搜索(Binary Search)
    • 时间复杂度:O(log n)
    • 空间复杂度:O(1)
  8. 广度优先搜索(Breadth-First Search,BFS)
    • 时间复杂度:O(V + E)(V 是顶点数,E 是边数)
    • 空间复杂度:O(V)(使用队列存储顶点)
  9. 深度优先搜索(Depth-First Search,DFS)
    • 时间复杂度:O(V + E)(V 是顶点数,E 是边数)
    • 空间复杂度:O(V)(取决于递归深度)

这些复杂度是基于平均情况或最坏情况的估算,实际应用中可能会有一些变化。在选择算法时,需要根据具体问题的特点来权衡时间复杂度和空间复杂度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈哈hall了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值