1.算法效率
现在的算法主要看重时间复杂度而不是空间复杂度
时间复杂度
算N的时间复杂度
可以看出,当N增大时候,N方的占比越大
所以我们引入大O渐近表示法
大O渐近表示法
Func4的时间复杂度是? O(1)->不是一次,而是常数次
下面这种情况一般取最坏情况
我们认为这边的时间复杂度是O(N)
冒泡排序精确的时间复杂度是N*(N-1)/2
二分查找的时间复杂度是什么呢?
想象白纸的一次次折叠过程,可知是log n ,要看思想,而不是看代码
求递归的时间复杂度
没有这么复杂,只需要看递归的深度
求递归斐波那契的时间复杂度
是2的n次方
空间复杂度
阶乘
看递归的深度,栈帧的消耗
空间是可以重复利用的,没了可以用新的填,不累计的
时间是一去不复返的,累计的
2.常见的时间复杂度