波奇学数据结构:时间复杂度和空间复杂度

文章详细阐述了数据结构在计算机存储中的作用,以及如何通过时间复杂度分析算法效率,如二分查找的时间复杂度为O(logN)。同时,讨论了斐波那契数列的时间复杂度为O(2^n)。此外,还介绍了空间复杂度的概念,举例说明了不同情况下的空间占用,强调了计算新开辟空间的重要性。
摘要由CSDN通过智能技术生成

数据结构:计算机存储,组织数据方式。数据之间存在多种特定关系。

时间复杂度:程序基本操作(循环等)执行的次数

大O渐进法表示法

用最高阶的项来表示,且常数变为1。

F(n)=3*n^2+2n+1//F(n)为次数函数,时间复杂度O(n^2)

O(n^2)表示最大量级是n^2,不代表函数循环的次数是n^2。

循环次数确定时,时间复杂度记为O(1)

不确定情况

O(M+N)

M远大于N,O(M)N远大于M,O(N)M,N相等,O(M)或O(N)

当算法复杂度存在最好,最坏,平均情况时(最好:最小次数,最坏:最大次数,平均:期望运行次数),选择最坏作为时间复杂度。

二分查找:O(logN)

最好:O(1),最坏:O(logN)

第一次:n
第二次:n/2
...
第k次:1
1*2^k=n
k=log2(n)//一2为底n的对数

斐波那契数列:O(2^n)

尽管会有提前结束,但忽略不计。

空间复杂度:计算临时占用存储空间大小量度

不算函数参数,计算新开辟的空间

例1:空间复杂度O(N)

例2:O(1)不算函数传进来的数组,开辟常数个变量

例3:O(N)

n加1个函数栈帧,每个栈帧是O(1)

例4:空间复杂度O(N)

如下图:函数调用是先调用完左边的再开始调用右边,最大的空间就是从Fib(N)到Fib(2),后面调用就是重复使用空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值