大学院-筆記試験練習:线性代数和数据结构(9)
- 1-前言
- 2-线性代数-题目
- 3-线性代数-参考答案
- 4-数据结构-题目
- 5-数据结构-参考答案
- [問1:二分探索木(Binary Search Tree)](#問1:二分探索木(Binary Search Tree))
- [問2:ソートアルゴリズム A](#問2:ソートアルゴリズム A)
-
- [(1)配列 A = {3, 4, 2, 1} のソート過程](#(1)配列 A = {3, 4, 2, 1} のソート過程)
-
- [i = 0](#i = 0)
- [i = 1](#i = 1)
- [i = 2](#i = 2)
- (2)本アルゴリズムの名称
- (3)時間計算量
- (4)安定ソートか?
- (5)本アルゴリズムより最悪時間計算量が小さいソート
- [✅ 总结(考试速背版)](#✅ 总结(考试速背版))
- 6-总结
1-前言
为了升到自己目标的大学院,所作的努力和学习,这里是线性代数和数据结构部分。

2-线性代数-题目

3-线性代数-参考答案




4-数据结构-题目

5-数据结构-参考答案
問1:二分探索木(Binary Search Tree)
(1)数列 S = {3, 7, 1, 5} を順に insert した結果
插入过程
-
插入 3 → 作为根
-
插入 7 → 7 > 3 → 右子
-
插入 1 → 1 < 3 → 左子
-
插入 5
- 5 > 3 → 右
- 5 < 7 → 成为 7 的左子
得到的二分探索木
3
/ \
1 7
/
5
(2)图2 的二分探索木に visit 関数を適用した出力順
visit 函数顺序
text
print(node)
→ visit(left)
→ visit(right)
这是 先行順(Preorder Traversal)
图2 的结构(题目给定)
5
/ \
3 6
/ \
2 4
/
1
访问顺序
5 → 3 → 2 → 1 → 4 → 6
✅ 输出结果
5 3 2 1 4 6
(3)insert 関数の時間計算量
设数据个数为 n
-
最悪時間計算量
- 木退化成链表(已排序插入)
- 高度 = n
O(n)
-
最良時間計算量
- 木近似平衡
- 高度 = log n
O(log n)
(4)図2の木を「右に単回転」した結果
右回転发生在 节点 5(左子为 3)
回转前
5
/
3
回转后
3
/ \
2 5
/ / \
1 4 6
✅ 回転後の二分探索木
3
/ \
2 5
/ / \
1 4 6
問2:ソートアルゴリズム A
(1)配列 A = {3, 4, 2, 1} のソート過程
该算法每一步:
从 A[i]~A[n−1] 中找最小值,与 A[i] 交换
i = 0
-
最小值 = 1
→ 交换 A[0] 与 A[3]{1, 4, 2, 3}
i = 1
-
最小值 = 2
→ 交换 A[1] 与 A[2]{1, 2, 4, 3}
i = 2
-
最小值 = 3
→ 交换 A[2] 与 A[3]{1, 2, 3, 4}
(2)本アルゴリズムの名称
✅ 選択ソート(Selection Sort)
(3)時間計算量
-
平均時間計算量 :
O(n²) -
最悪時間計算量 :
O(n²)
(无论初始顺序如何,都要做完整扫描)
(4)安定ソートか?
- 选择排序会直接交换元素
- 相同值的相对顺序可能改变
❌ 不是稳定排序
✅ 回答:
いいえ
(5)本アルゴリズムより最悪時間計算量が小さいソート
任选一个即可:
- マージソート(Merge Sort) → O(n log n)
- ヒープソート(Heap Sort) → O(n log n)
✅ 示例回答:
マージソート
✅ 总结(考试速背版)
| 项目 | 答案 |
|---|---|
| BST visit 顺序 | 先行順 |
| BST 插入最坏 | O(n) |
| BST 插入最好 | O(log n) |
| 排序算法 | 選択ソート |
| 稳定性 | いいえ |
| 更快算法 | マージソート |
6-总结
训练成长。!!