大学院-筆記試験練習:线性代数和数据结构(5)
- 1-前言
- 2-线性代数-题目
- 3-线性代数-参考答案
- 4-数据结构-题目
- 5-数据结构-参考答案
-
- [B. データ構造(連結リスト)那张](#B. データ構造(連結リスト)那张)
-
- 問1(1)
- [問1(2) 末尾要素探索(最悪)](#問1(2) 末尾要素探索(最悪))
- [問1(3) 伪代码 merge 的输出(你这里需要改)](#問1(3) 伪代码 merge 的输出(你这里需要改))
- [問1(4) 最悪計算量](#問1(4) 最悪計算量)
- [C. ソート / ハッシュ 那张(你这里错得比较集中)](#C. ソート / ハッシュ 那张(你这里错得比较集中))
-
- 問2(排序算法分类)
-
- [(1) 最悪 (O(n\log n)) 且稳定](#(1) 最悪 (O(n\log n)) 且稳定)
- [(2) 最悪 (O(n^2)) 且不稳定](#(2) 最悪 (O(n^2)) 且不稳定)
- [(3) 最悪 (O(n^2)) 且稳定](#(3) 最悪 (O(n^2)) 且稳定)
- 問3(ハッシュ)
-
- [(1) 最初に衝突が起きる要素](#(1) 最初に衝突が起きる要素)
- [(2) 衝突が起きていない場合の探索最悪時間計算量](#(2) 衝突が起きていない場合の探索最悪時間計算量)
- 6-总结
1-前言
为了升到自己目标的大学院,所作的努力和学习,这里是线性代数和数据结构部分。

2-线性代数-题目

3-线性代数-参考答案




4-数据结构-题目


5-数据结构-参考答案

B. データ構造(連結リスト)那张
問1(1)
"末尾に追加 + 先頭から削除" ⇒ キュー(①)
✅你选 ① 正确。
問1(2) 末尾要素探索(最悪)
- 実装A:rear 不保存,找尾要走到最后 ⇒ (O(n))
- 実装B:rear 直接指向尾 ⇒ (O(1))
✅你写 (O(n),O(1)) 正确。
問1(3) 伪代码 merge 的输出(你这里需要改)
给定:
- list1:先頭から [7,5,3]
- list2:先頭から [6,4]
代码逻辑是"谁 val 大就先接谁"(标准 merge),所以返回链表从头到尾是:
✅正确顺序应为:7 → 6 → 5 → 4 → 3
你写成了 {3,4,5,6,7}(像集合/升序),这在题目要求"先頭から順に"时会被判错。
这题的得分点就是"按返回链表从头到尾的顺序写出来"。
問1(4) 最悪計算量
每个节点最多被处理一次 ⇒ (O(n+m))
✅你写 (O(m+n)) 正确。
C. ソート / ハッシュ 那张(你这里错得比较集中)
問2(排序算法分类)
选项(b):①バブル ②選択 ③挿入 ④ヒープ ⑤マージ ⑥クイック
(1) 最悪 (O(n\log n)) 且稳定
- ✅マージソート(⑤)稳定,且最坏 (O(n\log n))
- ヒープ(④)最坏也是 (O(n\log n)) 但不稳定
所以答案:⑤
✅你写 ⑤ 正确。
(2) 最悪 (O(n^2)) 且不稳定
- ✅選択ソート(②):最坏 (O(n^2)),不稳定
- ✅クイックソート(⑥):最坏 (O(n^2)),不稳定
所以答案:②, ⑥
❌你只写了 ②,漏了 ⑥。
(3) 最悪 (O(n^2)) 且稳定
- ✅バブルソート(①):稳定,最坏 (O(n^2))
- ✅挿入ソート(③):稳定,最坏 (O(n^2))
所以答案:①, ③
❌你只写了 ③,漏了 ①。
問3(ハッシュ)
哈希函数:(h(a)=\mathrm{mod}(a,3))
序列:10, 5, 6, 4, 2, 7, 3
(1) 最初に衝突が起きる要素
逐个看桶编号:
- 10 mod3 = 1(桶1空)
- 5 mod3 = 2(桶2空)
- 6 mod3 = 0(桶0空)
- 4 mod3 = 1(桶1已被10占了)→ 第一次冲突发生在 4
✅正确答案:4
❌你写成 6,不对(6 是第三个插入,桶0当时还是空的)。
(2) 衝突が起きていない場合の探索最悪時間計算量
题目说"没有冲突",那每个桶最多 1 个元素,查找直接定位桶即可:
✅最坏也是 (O(1))
❌你写 (O(n)) 不对。
6-总结
训练成长。!!