时间复杂度——算法小白的保姆级笔记,通俗易懂
一句话解释
时间复杂度是算法分析中用来衡量算法执行效率的一个指标,它表示随着输入规模的增大,算法执行所需要的时间增长的速度。
举个例子
通常用大O符号(O)来表示时间复杂度,例如O(1)、O(n)、O(nlogn)等。其中,n表示输入规模,常见的算法时间复杂度有:
- O(1):常数时间复杂度,算法的执行时间不随输入规模的增大而增大,例如数组的访问、哈希表的查找等;
- O(logn):对数时间复杂度,算法的执行时间随着输入规模的增大而增长,但增长速度很慢,例如二分查找、平衡树的查找等;
- O(n):线性时间复杂度,算法的执行时间随着输入规模的增大而增长,增长速度与输入规模成正比,例如数组的遍历、简单查找等;
- O(nlogn):线性对数时间复杂度,算法的执行时间随着输入规模的增大而增长,但增长速度比线性更快,例如归并排序、快速排序等;
- O(n^2):平方时间复杂度,算法的执行时间随着输入规模的增大而增长,并且增长速度很快,例如冒泡排序、选择排序等。