大学院-筆記試験練習:线性代数和数据结构(14)
- 1-前言
- 2-线性代数-题目
- 3-线性代数-参考答案
- 4-数据结构-题目
- 5-数据结构-参考答案
- 問1(バブルソート)
-
-
- [(1) ~ (3)](#(1) ~ (3))
-
- 問2(二分探索)
-
- [(1) 擬似コード空欄①〜⑤](#(1) 擬似コード空欄①〜⑤)
- [(2) BinarySearch1(A,5) の返り値](#(2) BinarySearch1(A,5) の返り値)
- [(3) BinarySearch1 が −1 を返す条件](#(3) BinarySearch1 が −1 を返す条件)
- [(4) 最良・最悪時間計算量](#(4) 最良・最悪時間計算量)
- [(5) 再帰呼び出し回数](#(5) 再帰呼び出し回数)
- [(6) 再帰版 非再帰版が速い理由](#(6) 再帰版 非再帰版が速い理由)
- 6-总结
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-总结
训练成长。!!