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

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

1-前言

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

2-线性代数-题目

3-线性代数-参考答案






4-数据结构-题目

5-数据结构-参考答案


問1(バブルソート)

(1) ~ (3)

你在纸上给出的结论:

  • 比较回数:③ 2
  • 交换回数:② 1
  • 最外层循环次数:④ C
  • 时间复杂度:⑤ c

👉 这四个判定全部是 ○(正确)

理由(简述):

  • 初始 {5,2,7,1}
  • 第 1 趟:最大值 7 冒到最后
  • 第 2 趟:5 再冒一次
  • 第 3 趟:剩余已排好
    → 比较/交换次数与你写的一致
    O(n²) 正确

問2(二分探索)

(1) 擬似コード空欄①〜⑤

你写的是(整理后):

空欄 你的答案 判定
key < A[mid]
end = mid - 1
start = mid + 1
A[mid] == key
A, start, mid-1, key

👉 ①〜⑤ 全部 ○(满分)


(2) BinarySearch1(A,5) の返り値

你写:2

👉 ○ 正确

数组 {1,2,5,7}
A[2] = 5 → 正确返回索引 2。


(3) BinarySearch1 が −1 を返す条件

你写:

配列Aの中に key が存在しない場合

👉 ○ 正确(而且是模范答案)


(4) 最良・最悪時間計算量

你写:

O(1), O(log n)

👉 ○ 正确

  • 最良:第一次 mid 命中 → O(1)
  • 最悪:完全找不到或最后才命中 → O(log n)

(5) 再帰呼び出し回数

BinarySearch2(A,0,3,5)

你写:

3回

👉 △(思路对,但数错 1 次)

我们严格数一遍:

复制代码
BinarySearch2(A,0,3,5)
 → mid=1 (A[1]=2) < 5
 → BinarySearch2(A,2,3,5)

BinarySearch2(A,2,3,5)
 → mid=2 (A[2]=5) == key
 → return

👉 调用次数是 2 回

所以:

  • 思路正确
  • 计数偏 1

(6) 再帰版 非再帰版が速い理由

你写的大意是:

再帰会使用额外空间,函数调用有开销

👉 △(方向正确,但理由不完整)

  • 再帰呼び出しには 関数呼び出しオーバーヘッド
  • スタック使用
  • 非再帰版は 同じ計算量だが定数時間が小さい

你只写了"空间"和"时间可能变长",没有点出「関数呼び出しオーバーヘッド」

👉 判定:


「関数呼び出しオーバーヘッド」是什么意思?

一句话版本(考试用):

👉 调用函数本身就要花时间和资源,这些"额外的消耗"就叫「関数呼び出しオーバーヘッド」

6-总结

训练成长。!!

相关推荐
Remember_9932 小时前
【数据结构】深入理解Map和Set:从搜索树到哈希表的完整解析
java·开发语言·数据结构·算法·leetcode·哈希算法·散列表
TTGGGFF2 小时前
控制系统建模仿真(二):掌握控制系统设计的 MAD 流程与 MATLAB 基础运算
开发语言·数据结构·matlab
金融小师妹3 小时前
基于AI多模态分析的日本黄金储备60%跃升研究:外汇结构重构与资产价格联动机制解构
大数据·数据结构·人工智能·深度学习
重生之后端学习3 小时前
25. K 个一组翻转链表
java·数据结构·算法·leetcode·职场和发展
虹科网络安全3 小时前
艾体宝洞察 | 不止步于缓存 - Redis 多数据结构平台的演进与实践
数据结构·redis·缓存
ajole3 小时前
C++学习笔记——stack和queue
开发语言·数据结构·c++·笔记·学习·stl·学习方法
ValhallaCoder3 小时前
Day51-图论
数据结构·python·算法·图论
苦藤新鸡3 小时前
24.判断回文链表
数据结构·链表
进击的荆棘4 小时前
优选算法——双指针
数据结构·算法