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

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

1-前言

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

2-线性代数-题目

3-线性代数-参考答案



4-数据结构-题目

【予測問題①】連結リストと操作の本質(高確率)

n 個の整数 (x_1, x_2, \dots, x_n) からなる連結リストを考える。

この連結リストは,先頭要素への参照のみを保持している。

以下の問いに答えよ。


(1)

この連結リストに対して,

「先頭に要素を追加し,先頭の要素を削除する」

という操作を繰り返すとき,

この操作の振る舞いと等価なデータ構造の名称を答えよ。


(2)

上記の操作を,

要素数 n に対して最悪時間計算量が (O(1)) となるように実現できるか。

可能であればその理由を,

不可能であればその理由を簡潔に述べよ。


(3)

同じ操作を

「末尾に要素を追加し,先頭の要素を削除する」

に変更した場合,

最悪時間計算量が変化するかどうかを答えよ。


  • 「名前」不是重点

  • 是否 O(1) 才是给分点


【予測問題②】ソートアルゴリズムの"逆向き"判定(高频)

あるソートアルゴリズム A は,

次の性質をすべて満たす。

  • 平均時間計算量は (O(n \log n))
  • 最悪時間計算量は (O(n^2))
  • 安定ではない

以下の問いに答えよ。


(1)

このアルゴリズム A の名称を 1 つ答えよ。


(2)

アルゴリズム A において,

最悪時間計算量が (O(n^2)) となる入力の特徴を簡潔に述べよ。


(3)

アルゴリズム A を安定にすることが一般に困難である理由を述べよ。


  • (1) だけ合っても半分
  • (2)(3) 是理解分

【予測問題③】探索アルゴリズムと表現法(高概率)

連結な無向グラフ (G = (V, E)) に対して探索を行う。

以下の問いに答えよ。


(1)

グラフを隣接行列で表現した場合,

深さ優先探索(DFS)を行うときの

最悪時間計算量を (|V| = n, |E| = m) を用いて答えよ。


(2)

同じ探索を隣接リストで表現した場合の

最悪時間計算量を答えよ。


(3)

隣接行列と隣接リストのどちらが
疎なグラフに適しているかを理由とともに述べよ。


  • DFS の時間計算量 ≠ BFS と混同しやすい
  • 行列は が本体

【予測問題④】ハッシュ法と最悪ケース(杀分题)

要素数 n のデータに対して,

ハッシュ関数 (h(x)) を用いて探索を行う。

以下の問いに答えよ。


(1)

ハッシュ法において,
すべての要素が同じハッシュ値に写像される場合

探索の最悪時間計算量を答えよ。


(2)

上記の最悪ケースが発生する原因を

ハッシュ関数の性質の観点から簡潔に述べよ。


(3)

この最悪ケースを軽減するための方法を 1 つ挙げよ。


5-数据结构-参考答案

【予測問題①】連結リストと操作の本質【解答】

(1)

「先頭に追加し,先頭から削除」を繰り返す振る舞いは スタック に等価である。

(push:先頭追加,pop:先頭削除)


(2)

可能である。

先頭への挿入および先頭の削除はいずれも参照(先頭ポインタ)の付け替えのみで実現でき,

要素数 (n) に依存しないため最悪時間計算量は (O(1)) となる。


(3)

変化する。

「末尾に追加し,先頭から削除」とした場合,末尾参照を保持しない実装では末尾への到達に走査が必要となる。

したがって末尾への追加は最悪 (O(n)) となり,全体として最悪計算量は増加する。

(※末尾参照(rear)を保持する場合は末尾追加も (O(1)) で実現可能。)


【予測問題②】ソートアルゴリズムの逆向き判定【解答】

(1)

条件(平均 (O(n\log n)),最悪 (O(n^2)),不安定)を満たす代表例は クイックソート である。


(2)

分割が極端に偏る入力(例:ピボットの選び方に対して既に整列済み・逆順など)では,

部分配列のサイズが (n-1) と 0 に近い分割が繰り返され,

比較回数が二乗オーダーとなるため最悪 (O(n^2)) となる。


(3)

クイックソートは分割(partition)過程で要素の交換が発生し,

同じ値をもつ要素の相対順序が保持されない可能性がある。

したがって一般には安定化のために追加の工夫(補助配列等)が必要となり,

そのままでは安定になりにくい。


【予測問題③】探索アルゴリズムと表現法【解答】

(1)

隣接行列では,各頂点について隣接の確認に行(列)全体の走査が必要となるため,

DFS の最悪時間計算量は

O(n\^2)

である。


(2)

隣接リストでは,各頂点と各辺を高々 1 回ずつ処理するため,

DFS の最悪時間計算量は

O(n+m)

である。


(3)

疎なグラフには隣接リストが適している。

疎なグラフでは (m \ll n^2) であり,隣接リストは空間 (O(n+m)) で表現でき,

探索も (O(n+m)) で行える。一方,隣接行列は空間が常に (O(n^2)) 必要となる。


【予測問題④】ハッシュ法と最悪ケース【解答】

(1)

すべての要素が同一のハッシュ値に写像される場合,

探索は線形探索と同等となり最悪時間計算量は

O(n)

である。


(2)

ハッシュ関数が一様性を満たさず,写像が偏る(分布が悪い)ために衝突が集中し,

同一バケット(または同一探索列)に要素が偏在することが原因である。


(3)

衝突を軽減する方法として,例えば以下が挙げられる。

  • 一様性の高いハッシュ関数を用いる
  • テーブルサイズを適切に取り,負荷率を低く保つ(再ハッシュを行う)
  • 連鎖法や二重ハッシュ法など,衝突解決法を適切に選択する

(いずれか 1 つで可)


6-总结

训练成长。!!

相关推荐
.小墨迹2 小时前
开源的自动驾驶框架
c++·人工智能·学习·算法·ubuntu·开源·自动驾驶
蒸蒸yyyyzwd9 小时前
cpp对象模型学习笔记1.1-2.8
java·笔记·学习
阿蒙Amon10 小时前
TypeScript学习-第7章:泛型(Generic)
javascript·学习·typescript
Hill_HUIL10 小时前
学习日志23-路由高级特性(静态路由)
网络·学习
今儿敲了吗11 小时前
鸿蒙开发第一章学习笔记
笔记·学习·鸿蒙
经年未远13 小时前
vue3中实现耳机和扬声器切换方案
javascript·学习·vue
Hill_HUIL13 小时前
学习日志22-静态路由
网络·学习
詩不诉卿15 小时前
zephyr学习之自定义外部module记录
学习
浮游本尊15 小时前
React 18.x 学习计划 - 第十三天:部署与DevOps实践
学习·react.js·状态模式