求 n 个数据之和需要执行 n 次。所以时间复杂度为 O(n)。
外循环一次,内就循环 n 次,那么外循环 n 次,内就循环 n*n 次。所以时间复杂为 O(n²)。
申请了一个 n 大小的存储空间,所以空间复杂度为 O(n)。
最常见的空间复杂度O(1)、O(n)、O(n²)。
常量级的时间复杂度表示方法,无论是一行代码,还是多行,只要是常量级的就用 O(1) 表示。
O(logn) | O(nlogn)「对数阶时间复杂度」,最难分析的一种时间复杂度。
i=1
while( i<=n):
i*=3
3的k次方<=n ,o(log2 n)
不管是以 2 为底、以 3 为底,还是以 10 为底,可以把所有对数阶的时间复杂度都记为 O(logn),因为对数之间可以转换的,参照高中课本。
1、最好情况就是数组的第一个就是我们要查找的数据,上边代码之执行一遍就可以,这种情况下的时间复杂度为最好时间复杂度,为 O(1)。
2、最坏的情况就是数组的最后一个才是我们要查找的数据,需要循环遍历 n 遍数组,也就对应最坏的时间复杂度为 O(n) 。