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

训练成长。!!

相关推荐
梵刹古音2 分钟前
【C语言】 指针与数据结构操作
c语言·数据结构·算法
爱敲代码的TOM1 小时前
数据结构总结
数据结构
皮皮哎哟3 小时前
数据结构:嵌入式常用排序与查找算法精讲
数据结构·算法·排序算法·二分查找·快速排序
堕2744 小时前
java数据结构当中的《排序》(一 )
java·数据结构·排序算法
2302_813806224 小时前
【嵌入式修炼:数据结构篇】——数据结构总结
数据结构
Wei&Yan5 小时前
数据结构——顺序表(静/动态代码实现)
数据结构·c++·算法·visual studio code
long3165 小时前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
张张努力变强8 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
wWYy.8 小时前
数组快排 链表归并
数据结构·链表
李斯啦果8 小时前
【PTA】L1-019 谁先倒
数据结构·算法