数据结构第一章概论MOOC整理

1.以下哪种结构是逻辑结构,而与存储和运算无关:A
A.队列
B.双链表
C.数组
D.顺序表

解析: A、队列:可以是顺序或链式存储,是逻辑结构 B、双链表:链式存储 C、数组:按索引值从小到大存放在一片相邻的连续区域,定义了存储结构 D、顺序表:按索引值从小到大存放在一片相邻的连续区域,定义了存储结构

2.下列说法正确的是:AB
A.如果函数f(n)是O(g(n)),g(n)是O(h(n)),那么f(n)是O(h(n))
B.如果函数f(n)是O(g(n)),g(n)是O(h(n)),那么f(n)+g(n)是O(h(n))
C.如果a>b>1,是,logan是O(logbn),但logbn不一定是O(logan)
D.函数f(n)是O(g(n)),当常数a足够大时,一定有函数g(n)是O(af(n))

解析: A、(1) 根据O()定义可知. B、(2) 如果f(n)是O(g(n)),g(n)是O(h(n)), 则f(n)是O(h(n)),所以f(n)+g(n)是O(h(n)) C、(3)logan=log(n)/log(a),logbn=log(n)/log(b),所以前者与后者只差了一个常数项,所以logbn一定是O(logan) D、(4)当f(n)=n,g(n)=n*2, 无论a多大,g(n)都不可能是O(af(n)).

3.由大到小写出以下时间复杂度的序列:(5)(1)(2)(4)(3)请添加图片描述

解析: 计算复杂度时,系数是可以忽略的。(5)和(1)是指数级复杂度,大于(2)(3)(4)多项式级复杂度,区别在于指数中是否有n。而(5)的指数里还有指数级复杂度的表达式,(1)的指数是n,为多项式级,故(5)比(1)复杂。对于(2)(3)(4),(2)的指数最大,为2.5,(4)的指数居中,为2,(3)的指数最小,解释如下:logn的任意实数次方的复杂度都小于n,故(logn)4比n复杂度低,故n*(logn)4比n*n复杂度低,故(4)比(3)复杂,故答案为(5)(1)(2)(4)(3)

4.已知一个数组a的长度为n,求问下面这段代码的时间复杂度: B
在这里插入图片描述
A.Ω(n^2)
B.O(n^2)
C.θ(n^2)
D.O(n)

解析: A、本代码实际上是求a中有序子数组中最长的长度。譬如,在[1, 8, 1, 2, 5, 0, 11, 9]中,最长的是[1, 2, 5],长度为3 。其时间复杂度与a中元素的实际取值状态相关。 1)若a的所有元素是按照降序方式排列。则外层循环n-1次,每次内层只执行一次,整个开销为θ(n) 2)若a的所有元素是按照升序方式排列。则外层循环n-1次,每次内层需要执行n-i-1次,整个开销为θ(n^2) 所以,一般来说,时间复杂度是Ω(n)的,也是O(n^2)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值