Java数据结构——时间和空间复杂度
1.算法效率
时间效率——时间复杂度——衡量算法的运行速度
空间效率——空间复杂度——衡量一个算法所需要的额外空间
2.时间复杂度
时间复杂度是一个数学函数。一个算法执行所花费的时间和其中语句的执行次数成正比;算法中的基本操作的执行次数,为时间复杂度
O阶渐进表示法:
2.计算时间复杂度:
1.
2.
3.冒泡排序
4.二分查找
得x=log2n
O(log2n)
5.阶乘递归
O(N)
6.斐波那契递归
O(2^n)
3.排序
当n为无穷大时:
O(1)<O(logn)<O(n)<O(n^2)<O(2^n)
3.空间复杂度
空间复杂度是计算一个算法的变量个数
1.计算空间复杂度
1.
O(1)
2.
O(n)——随着n增大,返回的数组元素也增多
3.
O(n)——递归的每一项都会在栈上开辟栈帧