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位置插入时,只需修改指针指向的位置,无需移动节点。

相关推荐
金枪不摆鳍41 分钟前
算法--二叉搜索树
数据结构·c++·算法
向哆哆1 小时前
画栈 · 跨端画师接稿平台:基于 Flutter × OpenHarmony 的整体设计与数据结构解析
数据结构·flutter·开源·鸿蒙·openharmony·开源鸿蒙
季明洵2 小时前
C语言实现顺序表
数据结构·算法·c·顺序表
历程里程碑5 小时前
Linxu14 进程一
linux·c语言·开发语言·数据结构·c++·笔记·算法
Snow_day.6 小时前
有关线段树应用(1)
数据结构·算法·贪心算法·动态规划·图论
wengqidaifeng6 小时前
探索数据结构(二):空间复杂度
c语言·开发语言·数据结构
Once_day6 小时前
代码训练总结(1)算法和数据结构的框架思维
数据结构·算法
鹿角片ljp6 小时前
力扣125.验证回文串-双指针
数据结构·算法
夏乌_Wx6 小时前
练题100天——DAY44:回文链表 ★★☆☆☆
数据结构
-Try hard-7 小时前
数据结构|概念及单向有头链表
数据结构·算法·vim