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

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

1-前言

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

2-线性代数-题目


3-线性代数-参考答案




4-数据结构-题目

【問題1】ハッシュ法(衝突・順序トラップ)

次のデータ列

S = {18, 7, 4, 15, 9, 12}

に対して,

ハッシュ関数

h(a) = a \\bmod 5

を用い,先頭の要素から順に ハッシュ表に格納する。

(1) 最初に 衝突(collision) が発生する要素の値を答えよ。

(2) 上記の格納操作において,衝突が一切発生しなかった場合の探索に要する最悪時間計算量を,オーダー表記で答えよ。

※ ただし,衝突解決法は考慮しないものとする。

・「先頭から順に」

・「最初の衝突」=2回目に同じ添字が出た瞬間


【問題2】ハッシュ法と計算量(概念理解)

ハッシュ法を用いたデータ探索に関して,以下の問いに答えよ。

(1) 衝突が発生していない場合における探索の最悪時間計算量を,理由とともに述べよ。

(2) すべての要素が同一のハッシュ値に写像された場合,探索の最悪時間計算量はどのようになるか。オーダー表記で答えよ。

・「平均」ではなく 最悪時間

・「理由とともに」=一文説明必須


【問題3】連結リスト × ハッシュ(構造理解)

チェイン法(連結リスト)を用いて衝突を解決するハッシュ表を考える。

ハッシュ表の各要素は 単方向連結リスト で構成されている。

このとき,

(1) 各リストの先頭要素のアドレスのみを保持している場合,

 ある要素を探索する際の最悪時間計算量を,ハッシュ表の要素数 (n) を用いて答えよ。

(2) 上記の方法が,衝突が多発した場合に性能低下を引き起こす理由を簡潔に説明せよ。

・ハッシュ表サイズではなく データ数 n

・「簡潔に」= 2行以内想定


【問題4】実装理解(超高频)

ハッシュ法を用いたデータ管理において,

次の文が正しいかどうかを判断し,正しくない場合はその理由を述べよ。

「ハッシュ関数が適切であれば,

データの探索・挿入・削除はいずれも常に (O(1)) で実行できる。」
・「常に」

・削除も含まれている点


5-数据结构-参考答案

【問題1】ハッシュ法(衝突・順序)

(1) 最初に衝突が発生する要素

解答

最初に衝突が発生する要素の値は 15 である。

理由

先頭の要素から順に

18 → 7 → 4 → 15 → 9 → 12

をハッシュ関数 ( h(a)=a \bmod 5 ) により格納する。

h(18)=3,\\quad h(7)=2,\\quad h(4)=4,\\quad h(15)=0

ここで,すでに ( h(15)=0 ) に対応する添字には要素 18 が格納されているため,

15 を格納する際に最初の衝突が発生する。


(2) 衝突が発生しない場合の探索の最悪時間計算量

解答

探索に要する最悪時間計算量は (O(1)) である。

理由

衝突が発生しない場合,

ハッシュ関数により探索対象の要素が格納されている位置を直接計算できるため,

定数時間で探索が可能である。


【問題2】ハッシュ法と計算量

(1) 衝突が発生していない場合

解答

最悪時間計算量は (O(1)) である。

理由

衝突が存在しない場合,

探索対象の要素はハッシュ関数によって一意に配列の添字へ写像され,

配列の直接参照により定数時間で探索できるためである。


(2) すべての要素が同一のハッシュ値に写像された場合

解答

最悪時間計算量は (O(n)) である。

理由

すべての要素が同一の添字に格納されると,

探索は連結リストを先頭から順に走査することになり,

要素数 (n) に比例した時間が必要となるためである。


【問題3】連結リスト × ハッシュ(チェイン法)

(1) 探索の最悪時間計算量

解答

最悪時間計算量は (O(n)) である。

理由

衝突が集中した場合,

すべての要素が同一の連結リストに格納される可能性があり,

その場合は先頭から順に (n) 個の要素を探索する必要があるためである。


(2) 性能低下が起こる理由

解答

衝突が多発すると,各ハッシュ値に対応する連結リストが長くなり,

探索処理が配列アクセスではなく線形探索となるため,

探索性能が低下する。


【問題4】記述問題(「常に」の罠)

判断

誤りである。

理由

ハッシュ関数が適切であっても,

衝突が完全に回避されるとは限らず,

衝突が発生した場合には探索・挿入・削除において

線形時間 (O(n)) を要する可能性があるためである。


相关推荐
学linux的QQ蛋19 分钟前
sys文件系统与misc文件系统学习小总结
linux·学习·驱动
滕州市燕猫虎计算机科技工作室个体工商户10 小时前
《Rust程序设计》学习笔记八:结构体
笔记·学习·rust·rust程序设计
别动我齐刘海11 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
xier_ran13 小时前
【infra之路】AI 编译器学习笔记(二):重拾 C++——移动语义与 LLVM 风格的类型转换
人工智能·笔记·学习
li星野15 小时前
5 TYPES OF ADVERBS — One-Page Notes
学习
星恒随风15 小时前
Linux库的底层原理:ELF文件格式、静态链接、程序加载、虚拟地址空间与GOT/PLT详解
linux·运维·笔记·学习·状态模式
罗西的思考15 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 — (7)— 混合机制
笔记·学习
starsky7623815 小时前
Agent学习——上下文工程(三)
学习
xier_ran17 小时前
【infra之路】AI 编译器学习笔记(四):PatternRewriter 与贪心 driver
人工智能·笔记·学习
小弥儿17 小时前
GitHub今日热榜 | 2026-10-12:pytorch 上升四位
人工智能·pytorch·学习·开源·github