二分查找与斐波那契数递归与非递归的时间复杂度与空间复杂度

1、二分查找

  • 非递归

这里写图片描述

这里写图片描述
非递归二分查找:
时间复杂度为O(logn)
空间复杂度为O(1)

  • 递归实现
    这里写图片描述
    非递归二分查找:
    时间复杂度为O(logn)
    空间复杂度为O(1)

2、斐波那契数列

  • 递归

这里写图片描述

时间复杂度为O(2^n)
空间复杂度为O(1)

  • 非递归
    这里写图片描述

    时间复杂度为O(n)
    空间复杂度为O(1)

总结

1、时间复杂度就是一个计算执行基本操作的次数的函数
一般算法O(n)计算方法:
<1>用时间1取代运行时间中的所有加法常数

<2>在修改后的运行次数函数中,只保留最高阶项

例如:2*n^3+n (只保留n^3,因为n^3的增长率远远大于n)

<3>如果最高阶项系数存在且不是1,则去除与这个项相乘的常数
(所以上式的2可以除去,时间复杂度为0(n^3) )

2、递归算法时间复杂度=递归总次数*每次递归次数

3、空间复杂度:函数中创建对象的个数关于问题规模函数表达式