时间复杂度和空间复杂度

计算时间复杂度:
要找出程序的操流程作,然后确定他的运行次数,最后运用极限的思想来简化最后的结果
这里写图片描述
计算时间复杂度的简要流程:
1、时间复杂度就是函数中基本操作所执行的次数。
2、默认的是最坏时间复杂度,即分析最坏情况下所能执行的次数。
3、把常数项省略掉,这是因为只关注最影响时间变化的量级。

空间复杂度:
1.算法的空间复杂度并不是计算实际占用的空间,而是计算整个算法的辅助空间单元的个数,与问题的规模没有关系。
2.算法的空间复杂度S(n)定义为该算法所耗费空间的数量级。
3.若算法执行时所需要的辅助空间相对于输入数据量n而言是一个常数,则称这个算法的辅助空间为O(1);

二分查找的时间复杂度
二分查找的基本思想是将n个元素分成大致相等的两部分。
使a[n/2]与x做比较,
如果x = a[n/2],则找到x;
如果x< a[n/2],则只要在数组a的左半部分继续搜索x;
如果x > a[n/2],则只要在数组a的右半部搜索x。
一共有n个元素,按照这种方法,往后面就是n/2,n/4,….n/2^k,k为循环次数
所以可以总结:k=log2n,(以2为底,n的对数)

递归解决斐波那契数列的时间按复杂度和空间复杂度
当n = 1时,F(n) = 1,
当n = 2时,F(n) = 1,
当n = 3时,F(n) = 1,
即当n > 1时,F(n) = F(n-1) + F(n-2)

这里写图片描述
Fib(3)被计算了2次,Fib(2)被计算了3次。Fib(1)被调用了5次,Fib(0)中被调用了3次,所以它的效率是比较低的。
时间复杂度为

O(n)=2n O ( n ) = 2 n

空间复杂度就是树的高度
O(n)=n O ( n ) = n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值