时间复杂度(按增长速度从低到高排序)包括以下几类,用于描述算法执行时间随输入规模 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 增长呈阶乘级增长,是效率最差的复杂度之一。例:全排列的暴力枚举。

相关推荐
Magic--5 分钟前
选择排序:原理、实现与优化
数据结构·算法·排序算法
qq_417695058 分钟前
基于C++的区块链实现
开发语言·c++·算法
We་ct10 分钟前
LeetCode 74. 搜索二维矩阵:两种高效解题思路
前端·算法·leetcode·矩阵·typescript·二分查找
2401_8942419211 分钟前
基于C++的反射机制探索
开发语言·c++·算法
cui_ruicheng13 分钟前
C++ 数据结构进阶:unordered_map 与 unordered_set源码分析与实现
数据结构·c++·算法·哈希算法
C蔡博士18 分钟前
最小生成树(MST)详解:定义、算法与核心性质
算法·贪心算法·图论·时间复杂度
sxtyjty21 分钟前
AtCoder Beginner Contest 450 G题题解
数学·算法·期望
ccLianLian24 分钟前
数论·快速幂和逆元
数据结构·算法
没头脑的男大26 分钟前
华为题目152乘积最大子数组
算法·华为
牢姐与蒯26 分钟前
vector的实现
数据结构