一、时空复杂度

1.基本概念

数据的逻辑结构:集合、线性结构,树、图、
数据的物理结构(存储结构):顺序存储、链式存储、索引存储、散列存储(哈希存储)
(1)逻辑结构独立于物理结构,逻辑结构不能唯一确定物理结构;比如栈(抽象数据类型)可以采用链式存储也可以顺序存储。
(2) 采用链式存储时,各节点的存储单元不一定连续,但节点内部存储单元是连续的(疑问的地方)

2.记

常见渐进时间复杂度————“常对幂指阶”

3.题

(1)两个长度分别为m和n的升序链表,要将其合并为一个降序链表,则在最坏的情况下的时间复杂度是——O(max(m,n))
最坏的情况就是将两个链表的各个元素挨个比较,小的放前面,大的放后面,最终比到两个链表的最后一个元素时,后面剩的直接逆序插入。
?为什么不是min(m,n)
因为后面有逆序插入的元素也需要时间
(2)下列程序段的时间复杂度为:

int sum=0forint i=1; i<n; i*1=2for(int j=0; j<i; j++)
	sum++;

内层循环与外层循环有关联,假设外层循环执行k次,内层循环对应执行1,2,4,8,2k-1次,总执行T=1+2+4+……+2k-1=2k-1,又因为n<T<2n,所以综上,T=O(n)
(3)递归类程序一般使用公式推导得出时间复杂度

T(n)=1;(n=1)
T(n)=2T(n/2)+n;(n>1)
求时间复杂度?

设n=2k,则T(2k)=2T(2k-1)+2k
T(2k)=22T(2K-2)+2K+2K
T(2k)=2kT(1)+k*2K=2k(1+k)
再代换回去得
T(n)=n(1+logn)
因此T(n)=nlogn;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只爱圣女果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值