时间复杂度(按增长速度从低到高排序)包括以下几类,用于描述算法执行时间随输入规模 n 增长的变化趋势:

  1. **常数时间复杂度 O(1)**算法执行时间不随输入规模 n 变化,始终为固定常数。例:访问数组中的某个元素、简单的加减运算。

  2. **对数时间复杂度 O(logn)**执行时间随 n 增长呈对数级增长(通常以 2 为底),每次操作可将问题规模缩小一半。例:二分查找、平衡二叉树的查找操作。

  3. **线性时间复杂度 O(n)**执行时间与输入规模 n 成正比,需遍历所有元素一次。例:线性查找、数组的遍历操作。

  4. **线性对数时间复杂度 O(nlogn)**执行时间是 n 与 logn 的乘积,常见于高效的排序算法。例:快速排序、归并排序、堆排序。

  5. **平方时间复杂度 O(n2)**执行时间与 n 的平方成正比,通常涉及两层嵌套循环。例:冒泡排序、插入排序、暴力解法的两数之和。

  6. **立方时间复杂度 O(n3)**执行时间与 n 的立方成正比,涉及三层嵌套循环。例:暴力解法的矩阵乘法(三阶循环)。

  7. **指数时间复杂度 O(2n)**执行时间随 n 增长呈指数级爆炸,效率极低,仅适用于极小的输入规模。例:递归求解斐波那契数列(未优化)、子集枚举的暴力解法。

  8. **阶乘时间复杂度 O(n!)**执行时间随 n 增长呈阶乘级增长,是效率最差的复杂度之一。例:全排列的暴力枚举。

相关推荐
计科土狗1 小时前
算法基础入门第一章
c++·算法
与己斗其乐无穷1 小时前
算法(二)滑动窗口
算法
Ghost-Face1 小时前
恭喜自己,挑战成功!
算法
Miraitowa_cheems1 小时前
LeetCode算法日记 - Day 102: 不相交的线
数据结构·算法·leetcode·深度优先·动态规划
野生技术架构师1 小时前
盘一盘Redis的底层数据结构
数据结构·数据库·redis
ByteX1 小时前
算法练习-成功之后不许掉队
算法
蒙奇D索大1 小时前
【算法】 递归实战应用:从暴力迭代到快速幂的优化之路
笔记·考研·算法·改行学it
Miraitowa_cheems1 小时前
LeetCode算法日记 - Day 101: 最长公共子序列
数据结构·算法·leetcode·深度优先·动态规划
DuHz1 小时前
基于信号分解的FMCW雷达相互干扰抑制——论文阅读
论文阅读·算法·汽车·信息与通信·毫米波雷达