数据结构——试题整理

发布于:2022-12-18 ⋅ 阅读:(665) ⋅ 点赞:(0)

以下与数据的存储结构有关的术语是()

A.有序表

B.线性表

C.有向图

D.顺序表

正确答案是D.顺序表

存储结构

存储结构是数据的逻辑结构用计算机语言的实现,常见的存储结构有顺序存储,链式存储,索引存储以及散列存储。(其中散列所形成的存储结构叫做散列表,又叫哈希表)

因此,哈希表也是一种存储结构。

而栈,队列只是一种抽象数据类型,是一种逻辑结构。栈逻辑结构对应的顺序存储结构为顺序栈,对应的链式存储结构为链栈。队列的顺序存储结构是循环队列,链式存储结构是链队列,又叫做单链表,线性表逻辑结构对应的顺序存储结构为顺序表,对应的链式存储结构为链表。

而这里要注意,有序表不同于顺序表,顺序表是线性表的一种顺序存储结构。

有序表中的“有序”是逻辑意义上的有序,指表中的元素按某种规则已经排好了位置,既可以用链式存储又可以用顺序存储,所以只是一种逻辑上的有序而不是实际存储的方式,是逻辑结构。

顺序表中的“顺序”是物理意义上的,指线形表中的元素一个接一个的存储在一片相邻的存储区域中,最典型的例子就是数组。

数据逻辑结构与存储结构的关系

存储结构是逻辑结构用计算机语言的实现,逻辑结构独立于其存储结构,但逻辑结构不能唯一决定该数据的存储结构,如上题。

2.

 `注意语句中,p*=i,仅对p的值有影响,而不该变i的值,语句频度仍为O(n)

3.

 n趋于无穷时,T(n)/(n^2)为一个常数,故时间复杂度为O(n^2)

4.

 与上题方法一样,n趋于无穷时,f(n)/n为一常数,故时间复杂度为O(n)

 第一条语句

2^f(n)<=n,f(n)<=log2n,故时间复杂度为O(log2n),嵌套语句时间复杂度相乘即可得到结果

 2^(f(n)+1)<=n/2,f(n)+1<=log2(n/2),f(n)<=log2(n/2)-1=log2n-2

故时间复杂度为O(log2n)

以下函数中,渐进时间复杂度最小的是

T1时间复杂度为O(nlog2n),T2时间复杂度为O(n^log3n),T3时间复杂度为O(n^2),T4时间复杂度为O(nlog2n)

虽然T1(n)=O(T4(n)),但T4中nlog2n是T1中的两倍,所以T1的渐进时间复杂度最低

某算法的时间复杂度是O(n),说明该算法的执行时间与n成正比

 指数爆炸

m++执行次数

2+4+8+.........+2n=n(n+1)

位置固定,与n无关

 

用有向图即可解决

设语句频度为f(n)

1+2+3+.....+f(n)<n

(1+f(n))f(n)/2<n

解得时间复杂度为O(n^(1/2))

算法原地工作的含义是指需要额外的辅助空间为常量

 该算法仅需要借助一个变量t,与问题规模n的大小无关,所以其空间复杂度为O(1)

算法的优劣与算法描述语言有关,但与所用计算机无关

程序=算法+数据结构

逻辑结构看的是数据元素之间的关系

插入、删除运输效率高是链表的优点

级别越高,需要额外执行的·条件就越多,效率也就越低

在很多情况下,数据元素的取值情况,排列情况不同,算法的执行时间也就不同

 

 集合中任何两个数据元素之间都没有逻辑关系,组织形式松散

已知f(n)=O(g(n)),则必能推出g(n)=O(f(n))

n趋与无穷,f(n)/n为常数

ByeBye~

        

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到