全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
设 n 为正整数且远大于 1,有如下 C 语言程序段: void g(int n) { int count = 0; for (int i = 1; i <= n; i++) { for (int j = i; j <= n; j += 2) { count++; } } } (1) 求语句 count++ 的执行总次数的精确表达式(分别就 n 为偶数和 n 为奇数给出); (2) 给出该程序段的渐近时间复杂度(用大 O 记号表示)。
登录后查看答案
某线性表 L 的逻辑结构为线性结构,采用顺序存储结构实现,每个数据元素占用 8 个存储单元,其第一个元素的存储地址为 200。若该表另有一个变体 L′,逻辑结构与 L 完全相同,但采用链式存储实现,其结点中的指针域占用 4 个存储单元。现完成以下计算任务:(1) 求 L 中第 10 个元素的存储地址;(2) 若 L′ 共有 10 个元素,每个元素的数据域也占 8 个存储单元,求 L′ 存储全部结点所需的指针域总存储单元数。
现有甲、乙、丙、丁四种说法:甲:数据的逻辑结构描述数据元素之间的逻辑关系,与数据在计算机中的存储方式无关。乙:顺序存储结构要求数据元素存放在地址连续的存储单元中,因此只能用来实现线性逻辑结构的数据。丙:同一种逻辑结构可以采用不同的存储结构来实现。丁:树形逻辑结构只能通过链式存储结构(指针)实现,无法用顺序存储结构实现。请逐一判断甲、乙、丙、丁的正确性,并给出其中正确说法的个数。
设 n 为正整数且远大于 1,分析以下 C 语言程序段中语句 count++; 的执行总次数的渐近时间复杂度(用大 O 记号表示): for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j = j * 2) { count++; } } 要求:先写出内层循环对任意固定 i 的执行次数,再求总执行次数并给出大 O 复杂度。
设 n 为正整数且远大于 1,有如下 C 语言程序段: void f(int n) { int count = 0; for (int i = 1; i <= n; i++) for (int j = i; j <= n; j++) count++; } 分析语句 count++; 的执行总次数的渐近时间复杂度(用大 O 记号表示)。
设 n 为正整数且远大于 1。考虑如下 C 语言代码段: int T(int n) { int count = 0; for (int i = 1; i <= n; i++) { for (int j = i; j <= n; j += i) { count++; } } return count; } 请计算该算法中语句 `count++` 的总执行次数 T(n) 的精确数学表达式(使用求和符号表示),并据此判断其渐近时间复杂度 Big-O。
某单链表每个结点包含一个数据域和两个指针域。已知每个指针域占 4 个字节,数据域占 12 个字节,每个结点还需 4 个字节的附加控制信息。若要存放 1000 个数据元素,请计算:(1) 每个结点的存储密度(数据域字节数占结点总字节数的比例,用分数表示);(2) 存放全部元素共需多少字节的存储空间;(3) 若改用顺序存储实现同样的线性结构(仅存数据域,无指针与附加信息),需多少字节。
有一个数据组织方案:所有元素构成一个集合,元素之间除“同属一个集合”外没有任何其他关系,实现时用一段地址连续的存储单元依次存放各元素。请回答:(1) 该数据的逻辑结构属于哪一种基本逻辑结构?(2) 该数据采用的存储结构是什么?(3) 由(1)(2)可说明逻辑结构与存储结构之间是什么关系?
某线性表采用顺序存储结构实现,每个数据元素占用 4 个字节,第一个元素的起始存储地址为 1000(字节为单位)。请计算:第 8 个数据元素的起始存储地址是多少字节?若该线性表共有 20 个元素,则整个顺序表占用的存储空间是多少字节?