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

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

1-前言

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

2-线性代数-题目

3-线性代数-参考答案


4-数据结构-题目

5-数据结构-参考答案

問1

(1) 隣接行列で実装したときの隣接判定の時間計算量

隣接行列では,2頂点 (u, v) が隣接しているかは行列要素を 1回参照すれば判定できる。

O(1)


(2) 隣接リストで実装したときの空間計算量

隣接リストでは

  • 頂点数:(|V| = n)
  • 辺数:(|E| = m)

各頂点リスト+全辺を保持する。

O(n + m)


(3) 図1のグラフで BFS(始点:1)の訪問順

図1の有向辺(読み取り):

  • 1 → 2, 4
  • 2 → 6
  • 4 → 3, 6
  • 3 → 1, 5
  • 5 → 4

※「隣接頂点が複数あるときは 頂点番号の昇順

BFS 手順
  • 開始:1
  • 1 → {2,4}
  • 2 → {6}
  • 4 → {3}
  • 6 → なし
  • 3 → {5}
  • 5 → なし

答(訪問順)

1 \\rightarrow 2 \\rightarrow 4 \\rightarrow 6 \\rightarrow 3 \\rightarrow 5


(4) BFS 実行時のキュー Q の空間計算量

最悪の場合,キューには 全頂点が入る。

O(n)


(5) BFS を DFS に変更する場合のキュー処理の変更点

DFS では FIFO キューを使わず,LIFO 構造を用いる。

キューを スタック(LIFO) に変更する

(ENQUEUE/DEQUEUE を PUSH/POP に変更)


問2(ソートアルゴリズム)

文章の流れに対応させて解答します。

空欄 解答
(1) 計数ソート
(2) 最小値
(3) (n^2)
(4) 比較
(5) (n \log n)
(6) (n \log n)
(7) ピボット
(8) (n \log n)
(9) (n^2)
(10) 安定

完成文(確認用・要点)

  • 数の範囲が分かる場合は 計数ソート により (O(n))
  • 選択ソート:最小値を選択,平均・最悪ともに (O(n^2))
  • マージソート:分割と比較による統合,平均・最悪ともに (O(n\log n))
  • クイックソート:ピボットで分割,平均 (O(n\log n)),最悪 (O(n^2))
  • マージソートは 安定ソート

6-总结

训练成长。!!

相关推荐
VT.馒头9 分钟前
【力扣】2727. 判断对象是否为空
javascript·数据结构·算法·leetcode·职场和发展
历程里程碑2 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Sheep Shaun2 小时前
如何让一个进程诞生、工作、终止并等待回收?——探索Linux进程控制与Shell的诞生
linux·服务器·数据结构·c++·算法·shell·进程控制
Pluchon2 小时前
硅基计划4.0 简单模拟实现AVL树&红黑树
java·数据结构·算法
小龙报2 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
dllxhcjla2 小时前
数据结构和算法
数据结构
_OP_CHEN3 小时前
【算法基础篇】(五十七)线性代数之矩阵乘法从入门到实战:手撕模板 + 真题详解
线性代数·算法·矩阵·蓝桥杯·c/c++·矩阵乘法·acm/icpc
历程里程碑3 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
sin_hielo3 小时前
leetcode 1653
数据结构·算法·leetcode
李日灐3 小时前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树