【大学院-筆記試験練習:线性代数和数据结构(14)】

大学院-筆記試験練習:线性代数和数据结构(14)

1-前言

为了升到自己目标的大学院,所作的努力和学习,这里是线性代数和数据结构部分。

2-线性代数-题目

3-线性代数-参考答案






4-数据结构-题目

5-数据结构-参考答案


問1(バブルソート)

(1) ~ (3)

你在纸上给出的结论:

  • 比较回数:③ 2
  • 交换回数:② 1
  • 最外层循环次数:④ C
  • 时间复杂度:⑤ c

👉 这四个判定全部是 ○(正确)

理由(简述):

  • 初始 {5,2,7,1}
  • 第 1 趟:最大值 7 冒到最后
  • 第 2 趟:5 再冒一次
  • 第 3 趟:剩余已排好
    → 比较/交换次数与你写的一致
    O(n²) 正确

問2(二分探索)

(1) 擬似コード空欄①〜⑤

你写的是(整理后):

空欄 你的答案 判定
key < A[mid]
end = mid - 1
start = mid + 1
A[mid] == key
A, start, mid-1, key

👉 ①〜⑤ 全部 ○(满分)


(2) BinarySearch1(A,5) の返り値

你写:2

👉 ○ 正确

数组 {1,2,5,7}
A[2] = 5 → 正确返回索引 2。


(3) BinarySearch1 が −1 を返す条件

你写:

配列Aの中に key が存在しない場合

👉 ○ 正确(而且是模范答案)


(4) 最良・最悪時間計算量

你写:

O(1), O(log n)

👉 ○ 正确

  • 最良:第一次 mid 命中 → O(1)
  • 最悪:完全找不到或最后才命中 → O(log n)

(5) 再帰呼び出し回数

BinarySearch2(A,0,3,5)

你写:

3回

👉 △(思路对,但数错 1 次)

我们严格数一遍:

复制代码
BinarySearch2(A,0,3,5)
 → mid=1 (A[1]=2) < 5
 → BinarySearch2(A,2,3,5)

BinarySearch2(A,2,3,5)
 → mid=2 (A[2]=5) == key
 → return

👉 调用次数是 2 回

所以:

  • 思路正确
  • 计数偏 1

(6) 再帰版 非再帰版が速い理由

你写的大意是:

再帰会使用额外空间,函数调用有开销

👉 △(方向正确,但理由不完整)

  • 再帰呼び出しには 関数呼び出しオーバーヘッド
  • スタック使用
  • 非再帰版は 同じ計算量だが定数時間が小さい

你只写了"空间"和"时间可能变长",没有点出「関数呼び出しオーバーヘッド」

👉 判定:


「関数呼び出しオーバーヘッド」是什么意思?

一句话版本(考试用):

👉 调用函数本身就要花时间和资源,这些"额外的消耗"就叫「関数呼び出しオーバーヘッド」

6-总结

训练成长。!!

相关推荐
酉鬼女又兒1 天前
27. 移除元素
数据结构·算法·排序算法
执着2591 天前
力扣hot100 - 101、对称二叉树
数据结构·算法·leetcode
数智工坊1 天前
【数据结构-栈、队列、数组】3.3栈在括号匹配-表达式求值上
java·开发语言·数据结构
郝学胜-神的一滴1 天前
Python美学的三重奏:深入浅出列表、字典与生成器推导式
开发语言·网络·数据结构·windows·python·程序人生·算法
404未精通的狗1 天前
(数据结构)排序
数据结构·排序算法
Titan20241 天前
搜索二叉树笔记模拟实现
数据结构·c++·笔记·学习
不染尘.1 天前
二叉树相关题目
开发语言·数据结构·c++·算法
Imxyk1 天前
力扣:632. 最小区间(贪心)
java·数据结构·算法
历程里程碑1 天前
21:重谈重定义理解一切皆“文件“及缓存区
linux·c语言·开发语言·数据结构·c++·算法·缓存
元亓亓亓1 天前
考研408--数据结构--day6--串
数据结构·考研··408