408每日一题——数据结构

1.线性表采用链式存储时,其地址()。

A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续与否均可

2.设顺序表的长度为 n,下列算法中,最坏情况下比较次数小于 n 的是()。

A.寻找最大项 B.堆排序 C快速排序 D.顺序查找

3.已知一个长度为 n的单链表,每个节点包含一个整数数据域和一个指向下一个节点的指针域。若要在第i个位置插入一个新节点(1≤i≤n+1)平均需要移动的节点数为()。

A.n B.n/2 C.(n-1)/2 D.0

答案在下面。

第一题答案:D

解析:采用链式存储会用到指针,指针存储着数据的内存地址,因此可以不连续。

第二题答案:A

解析:

考察时间复杂度。

A:顺序表最坏情况,拿第二项跟第一项比较,记录最大项的值,之后拿后面的项与最大项比较,找到最大项,比较n-1次。

B:堆排序的时间复杂度为**N*log(N),**限制n≥2,可以复习堆排序。

C:快排如果按相反的顺序排列,第n-1次对比后,基准元素位于中间位置,之后的次数为n-2,n-3,......1,合计n(n-1)/2,等同最坏的时间复杂度。

D:顺序查找最坏情况是目标元素不存在,或目标值在表的最后一位,最坏为n次。

另:(线性表最坏情况下查找或比较次数)

|-------------|----------|
| 查找最大项/查找最小项 | n-1 |
| 顺序查找 | n |
| 二分法查找 | log2n |
| 冒泡排序 | n(n-1)/2 |
| 快速排序 | n(n-1)/2 |
| 简单插入排序 | n(n-1)/2 |
| 堆排序 | nlog2n |

第三题答案:D

解析:链表包含指针,在i位置插入时,只需修改指针指向的位置,无需移动节点。

相关推荐
驭渊的小故事5 小时前
简单模板笔记
数据结构·笔记·算法
VT.馒头6 小时前
【力扣】2727. 判断对象是否为空
javascript·数据结构·算法·leetcode·职场和发展
历程里程碑7 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Sheep Shaun7 小时前
如何让一个进程诞生、工作、终止并等待回收?——探索Linux进程控制与Shell的诞生
linux·服务器·数据结构·c++·算法·shell·进程控制
Pluchon8 小时前
硅基计划4.0 简单模拟实现AVL树&红黑树
java·数据结构·算法
小龙报8 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
dllxhcjla8 小时前
数据结构和算法
数据结构
历程里程碑9 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
sin_hielo9 小时前
leetcode 1653
数据结构·算法·leetcode
李日灐9 小时前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树