关于时间复杂度,空间复杂度的简介
背景:
新手在学习算法题的时候会对时间复杂度和空间复杂度等概念产生疑惑,本文就是要对时间复杂度和空间复杂度进行一个简介
阐述:
时间复杂度就是指操作的最小单元所需要的操作时间数量的抽象概念
空间复杂度就是指操作所需要的原子化空间所需要的操作空间的抽象概念
例子:
int[] a = {1,2,3} 具体案例要根据数据结构理解 数组根据索引获取值可以理解为时间复杂度最小颗粒操作
int b = a[1]; 根据索引获取值的过程 时间复杂度为O(1)
for(i=0;i<a.lengh;i++){ 复杂度O(n)
int c = a[i]
}已知获取值时间复杂度为O(1) 共进行n次获取 时间复杂度即为线性O(n)
以此类推 常用的时间(空间)复杂度还有:
常数阶O(1)
对数阶O(logN)
线性阶O(n)
线性对数阶O(nlogN)
平方阶O(n²)
立方阶O(n³)
K次方阶O(n^k)
指数阶(2^n)