【大学院-筆記試験練習:线性代数和数据结构(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-总结

训练成长。!!

相关推荐
All for pursuit.43 分钟前
【动态规划-21】312.戳气球
数据结构·c++·算法·leetcode·动态规划
YSL0701244 小时前
贪吃蛇小游戏---古法编程
数据结构·游戏程序
y1su5 小时前
Leetcode 动态规划 模板
java·数据结构·算法·leetcode·动态规划
All for pursuit.6 小时前
【位运算-3】136.只出现一次的数字
数据结构·c++·算法·leetcode
suhan6 小时前
【数据结构】五、树:7.哈夫曼树、哈夫曼编码
数据结构·算法·排序算法
suhan7 小时前
【数据结构】五、树:6.平衡二叉树AVL
数据结构·算法·排序算法
suhan7 小时前
【数据结构】五、树:5.二叉排序树BST
数据结构·算法·排序算法
爱读书的小胖7 小时前
80. 删除有序数组中的重复项 II
java·数据结构·算法
小画家~8 小时前
vue3 里面的 itemList.reduce
前端·数据结构·算法
tryxr8 小时前
索引概念和索引底层数据结构
数据结构·索引