时间复杂度和空间复杂度
O表达的是 它的复杂度是n的怎样一个函数
时间复杂度 :
公式 : T(n) = O( f(n) ) f(n) 表示每行代码执行次数之和,而 O 表示正比例关系
1.O(1) : 常数复杂度
2.O(log n) 对数复杂度 如二分查找
3.O(n) 线性时间复杂度 如二叉树遍历,前序,中序,后续
4.O(n^2) 平方 冒泡排序
5.O(n^3) 立方
6.O(2^n) 指数
7.O(n!) 阶乘
1.O1:无论代码执行了多少行,只要是没有循环等复杂结构,那这个代码的时间复杂度就都是O(1)
2.O(n): for循环里面会执行n遍代码,消耗的时间随着n的变化而变化。所以用O(n)标识
3.O(n^2):O(n)的代码在循环一遍,两个for
空间复杂度
1.如果代码里又数组,数组长度就是空间复杂度。一维数组空间复杂度为传入元素的个数。如果是二维数组,数组长度为n平方,空间复杂度为n平方。
2.如果是递归,递归最深深度,就是空间复杂度。