From 4c6610b3a6f2229cee91b4c98e4f1577ac8920c0 Mon Sep 17 00:00:00 2001 From: d14405021-coder Date: Mon, 22 Jun 2026 20:13:18 +0800 Subject: [PATCH 1/5] =?UTF-8?q?test:=20stage1=20timeit=20=E8=A3=9D?= =?UTF-8?q?=E9=A3=BE=E5=99=A8=E6=B8=AC=E8=A9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solutions/1114405021/0618/test_timing.py | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 weeks/week-17/solutions/1114405021/0618/test_timing.py diff --git a/weeks/week-17/solutions/1114405021/0618/test_timing.py b/weeks/week-17/solutions/1114405021/0618/test_timing.py new file mode 100644 index 000000000..af809ea4d --- /dev/null +++ b/weeks/week-17/solutions/1114405021/0618/test_timing.py @@ -0,0 +1,91 @@ +"""Stage 1 — @timeit 裝飾器測試骨架 + +規格:timing.py 的 timeit 裝飾器必須 + 1. 不改變被裝飾函式的回傳值 + 2. 用 functools.wraps 保留 __name__ / __doc__ + 3. 每次呼叫實際跑 repeat 次(預設 3),把每次耗時(float 秒)append 到 f.records + 4. f.last_elapsed = 本次 repeat 的平均耗時 + 5. 裝飾器內不准 print + 6. repeat < 1 → raise ValueError(用 raise,不准 assert) + +待辦: + 1. 自己打提示詞跟 AI 討論,補齊下面的測試(可再加);規格每條都要有覆蓋 + 2. 跑 `python -m unittest` 確認全紅 + 3. commit: "test: stage1 timeit 裝飾器測試" + 4. 寫 timing.py,全綠後 commit: "feat: stage1 實作 timeit 裝飾器" +""" + +import unittest +from time import sleep + +# from timing import timeit # 完成 timing.py 後解除註解 + + +class TestTimeit(unittest.TestCase): + """timeit 裝飾器測試""" + + def test_returns_original_result(self): + """測試回傳值是否保持完全不變""" + + @timeit + def add(a, b): + return a + b + + result = add(2, 3) + self.assertEqual(result, 5) # 回傳值與原始函式相同 + + def test_preserves_function_metadata(self): + """測試是否保留 __name__ / __doc__""" + + @timeit + def multiply(x, y): + """這個函式將兩個數字相乘""" + return x * y + + self.assertEqual(multiply.__name__, "multiply") + self.assertEqual(multiply.__doc__, "這個函式將兩個數字相乘") + + def test_repeat_records_and_average(self): + """測試 repeat 取平均紀錄功能""" + + @timeit(repeat=5) + def slow_function(): + sleep(0.01) + return "ok" + + result = slow_function() + self.assertEqual(result, "ok") + self.assertTrue(hasattr(slow_function, "records")) + self.assertTrue(hasattr(slow_function, "last_elapsed")) + self.assertIsInstance(slow_function.records, list) + self.assertGreaterEqual(len(slow_function.records), 1) + + def test_repeat_below_one_raises_valueerror(self): + """測試 repeat < 1 時要 raise ValueError""" + with self.assertRaises(ValueError): + timeit(repeat=0)(lambda: None) + + def test_function_exception_propagates(self): + """測試被裝飾函式拋出例外時裝飾器重新拋擲""" + + @timeit + def raise_exception(): + raise ValueError("test error") + + with self.assertRaises(ValueError): + raise_exception() + + def test_repeat_parameter_default(self): + """測試 repeat 預設值""" + + @timeit + def test(): + pass + + # 預設 repeat=3,應該有記錄 + self.assertTrue(hasattr(test, "records")) + self.assertEqual(len(test.records), 3) + + +if __name__ == "__main__": + unittest.main() From 0777d8a581a8f07eb4bc6a2ab05cdb4ef81af7c0 Mon Sep 17 00:00:00 2001 From: d14405021-coder Date: Mon, 22 Jun 2026 20:14:18 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20stage1=20=E5=AF=A6=E4=BD=9C=20timei?= =?UTF-8?q?t=20=E8=A3=9D=E9=A3=BE=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solutions/1114405021/0618/timing.py | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 weeks/week-17/solutions/1114405021/0618/timing.py diff --git a/weeks/week-17/solutions/1114405021/0618/timing.py b/weeks/week-17/solutions/1114405021/0618/timing.py new file mode 100644 index 000000000..d903b1f86 --- /dev/null +++ b/weeks/week-17/solutions/1114405021/0618/timing.py @@ -0,0 +1,51 @@ +import functools +import time + + +def timeit(func=None, *, repeat=3): + """為函式增加計時功能。 + + Args: + func: 要裝飾的函式 + repeat: 每呼叫一次時實際跑的次數,預設 3 + + Returns: + 裝飾後的函式 + + Raises: + ValueError: repeat < 1 + """ + if func is None: + # Called as @timeit(repeat=5) + def decorator(func_to_decorate): + return timeit(func_to_decorate, repeat=repeat) + + return decorator + + if repeat < 1: + raise ValueError(f"repeat 必須 >= 1,但得到 {repeat}") + + @functools.wraps(func) + def wrapper(*args, **kwargs): + records = [] + for _ in range(repeat): + start_time = time.time() + result = func(*args, **kwargs) + elapsed = time.time() - start_time + records.append(elapsed) + wrapper.records = records + wrapper.last_elapsed = sum(records) / len(records) + return result + + return wrapper + + +if __name__ == "__main__": + # 簡單測試 + @timeit + def test(): + return "hello" + + print(f"Result: {test()}") + print(f"Records: {test.records}") + print(f"Last elapsed: {test.last_elapsed}") From 452084464f44df3a4aae3b0a2be6e93dd7c65b37 Mon Sep 17 00:00:00 2001 From: d14405021-coder Date: Mon, 22 Jun 2026 20:14:20 +0800 Subject: [PATCH 3/5] =?UTF-8?q?test:=20stage1=20timeit=20=E8=A3=9D?= =?UTF-8?q?=E9=A3=BE=E5=99=A8=E6=B8=AC=E8=A9=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- weeks/week-17/solutions/1114405021/0618/test_timing.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/weeks/week-17/solutions/1114405021/0618/test_timing.py b/weeks/week-17/solutions/1114405021/0618/test_timing.py index af809ea4d..99dbfb430 100644 --- a/weeks/week-17/solutions/1114405021/0618/test_timing.py +++ b/weeks/week-17/solutions/1114405021/0618/test_timing.py @@ -18,7 +18,7 @@ import unittest from time import sleep -# from timing import timeit # 完成 timing.py 後解除註解 +from timing import timeit class TestTimeit(unittest.TestCase): @@ -83,6 +83,8 @@ def test(): pass # 預設 repeat=3,應該有記錄 + # 呼叫一次後,wrapper 應該有 records 屬性 + test() self.assertTrue(hasattr(test, "records")) self.assertEqual(len(test.records), 3) From 8eb30f92bd2e8ac4672b14c0c953260e7ac01cef Mon Sep 17 00:00:00 2001 From: d14405021-coder Date: Mon, 22 Jun 2026 20:15:42 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20stage2=20=E5=AF=A6=E4=BD=9C?= =?UTF-8?q?=E4=B8=89=E7=A8=AE=E6=90=9C=E5=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solutions/1114405021/0618/search.py | 39 +++++++++ .../solutions/1114405021/0618/test_search.py | 84 +++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 weeks/week-17/solutions/1114405021/0618/search.py create mode 100644 weeks/week-17/solutions/1114405021/0618/test_search.py diff --git a/weeks/week-17/solutions/1114405021/0618/search.py b/weeks/week-17/solutions/1114405021/0618/search.py new file mode 100644 index 000000000..acca12a23 --- /dev/null +++ b/weeks/week-17/solutions/1114405021/0618/search.py @@ -0,0 +1,39 @@ +def linear_search(data: list, target) -> int: + """從左到右逐一比對目標,返回找到的索引;找不到回 -1""" + for i, val in enumerate(data): + if val == target: + return i + return -1 + + +def binary_search(data: list, target) -> int: + """ + 二分搜尋。 + + 前提:data 已經升冪排序。 + 如果傳入未排序的 data,行為定義為回傳 -1(不嘗試排序)。 + 返回值:找到的索引,找不到回 -1。 + """ + # 檢查是否已排序(簡易實現:與排序後版本比較) + sorted_data = sorted(data) + if data != sorted_data: + return -1 + + left, right = 0, len(data) - 1 + while left <= right: + mid = (left + right) // 2 + if data[mid] == target: + return mid + elif data[mid] < target: + left = mid + 1 + else: + right = mid - 1 + return -1 + + +def set_search(data: list, target) -> bool: + """用 set / hash 檢查目標是否存在,返回 True / False""" + data_set = set() + for item in data: + data_set.add(item) + return target in data_set diff --git a/weeks/week-17/solutions/1114405021/0618/test_search.py b/weeks/week-17/solutions/1114405021/0618/test_search.py new file mode 100644 index 000000000..6a22ed251 --- /dev/null +++ b/weeks/week-17/solutions/1114405021/0618/test_search.py @@ -0,0 +1,84 @@ +"""Stage 2 — 搜尋正確性測試骨架 + +規格:search.py 的 linear_search / binary_search / set_search 必須 + 1. 一律不可修改傳入的 data(測試要驗) + 2. 回傳型別「不一致」,共用測試時要小心: + - linear_search(data, target) -> int 找到回 index,找不到回 -1 + - binary_search(data, target) -> int 找到回 index,找不到回 -1 + - set_search(data, target) -> bool 回傳是否存在 + 3. binary_search 的前提是 data 已排序;收到未排序 data 的行為, + 自己定義並在 docstring 寫清楚,測試也要對得上你的定義 + +設計要求:三個函式共用同一組測試——用迴圈 + subTest,不要複製貼上三份。 + 因為回傳型別不同,subTest 裡要把「找到/找不到」轉成可比較的共同判準 + (例:linear/binary 看 index 是否 >= 0,set 看 bool)——怎麼轉自己想。 + +待辦: + 1. 自己打提示詞跟 AI 討論,補齊測試——一般案例、edge case(空 list?重複值? + 目標不存在?)、「不可修改傳入 data」都要覆蓋;AI 給的齊不齊,自己驗收 + 2. 跑 `python -m unittest` 確認全紅 + 3. commit: "test: stage2 搜尋正確性測試" + 4. 寫 search.py,全綠後 commit: "feat: stage2 實作三種搜尋" +""" + +import unittest + +from search import linear_search, binary_search, set_search + +# 三個搜尋函式都放進這個 list,每個測試用 subTest 跑一輪; +# 注意回傳型別不一致,subTest 內要先轉成共同判準再比較。 +SEARCH_FUNCTIONS = [linear_search, binary_search, set_search] + + +class TestSearchFunctions(unittest.TestCase): + def test_found_cases(self): + test_data = [ + ([1, 2, 3, 4, 5], 3, True), # 線性搜尋找到 (index 2) + ([1, 2, 3, 4, 5], 6, False), # 線性搜尋找不到 + ([], 1, False), # 空列表 + ([5], 5, True), # 單元素列表 + ([1, 3, 5, 7, 9], 5, True), # 奇數序列 + ] + + for data, target, expected_found in test_data: + for search_func in SEARCH_FUNCTIONS: + with self.subTest(data=data, target=target, search_func=search_func): + result = search_func(data, target) + found = ( + (result != -1) + if search_func in [linear_search, binary_search] + else result + ) + self.assertEqual(found, expected_found) + + def test_not_found_cases(self): + test_data = [ + ([10, 20, 30, 40], 15), # 不存在的目標 + ([], 999), # 空列表 + ([5], 3), # 單元素列表,目標不存在 + ] + + for data, target in test_data: + for search_func in SEARCH_FUNCTIONS: + with self.subTest(data=data, target=target, search_func=search_func): + result = search_func(data, target) + found = ( + (result != -1) + if search_func in [linear_search, binary_search] + else result + ) + self.assertFalse(found) + + def test_input_not_mutated(self): + original_data = [1, 3, 5, 7, 9] + # 創建一個副本,驗證輸入不會被修改 + for search_func in SEARCH_FUNCTIONS: + with self.subTest(search_func=search_func): + data_copy = original_data.copy() + result = search_func(data_copy, 5) + # 驗證輸入數據是否被修改 + self.assertEqual(data_copy, original_data) + + +if __name__ == "__main__": + unittest.main() From b5ea73aba6726294453d9f1434ee65d21f5efc80 Mon Sep 17 00:00:00 2001 From: d14405021-coder Date: Mon, 22 Jun 2026 20:38:08 +0800 Subject: [PATCH 5/5] update --- .../week-03/solutions/augchao/caesar_shift.py | 35 ++++ .../solutions/augchao/test_caesar_shift.py | 24 +++ .../solutions/1114405021/0610/AI_LoG.md | 13 ++ .../solutions/1114405021/0610/README.md | 39 ++++ .../solutions/1114405021/0610/digit_root.py | 23 +++ .../1114405021/0610/test_digit_root.py | 24 +++ .../solutions/1114405021/0618/README.md | 170 +++++++++++++++++ .../1114405021/0618/assets/radar.png | Bin 0 -> 450097 bytes .../solutions/1114405021/0618/benchmark.py | 101 ++++++++++ .../week-17/solutions/1114405021/0618/plot.py | 177 ++++++++++++++++++ .../solutions/1114405021/0618/results.json | 23 +++ .../solutions/1114405021/0618/test_plot.py | 75 ++++++++ .../1114405021/0618/test_security.py | 114 +++++++++++ .../solutions/1114405021-new/AI_LoG.md | 18 ++ .../solutions/1114405021-new/README.md | 17 ++ .../solutions/1114405021-new/TEST_LOG.md | 35 ++++ .../solutions/1114405021-new/main-easy.py | 32 ++++ .../week-18/solutions/1114405021-new/main.py | 26 +++ .../solutions/1114405021-new/test_main.py | 51 +++++ weeks/week-18/solutions/1114405021/AI_LoG.md | 22 +++ weeks/week-18/solutions/1114405021/AT_LoG.md | 25 +++ weeks/week-18/solutions/1114405021/README.md | 17 ++ .../week-18/solutions/1114405021/TEST_LOG.md | 72 +++++++ .../solutions/1114405021/caesar-easy.py | 28 +++ weeks/week-18/solutions/1114405021/caesar.py | 25 +++ .../week-18/solutions/1114405021/main-easy.py | 50 +++++ weeks/week-18/solutions/1114405021/main.py | 53 ++++++ .../solutions/1114405021/test_caesar.py | 50 +++++ .../week-18/solutions/1114405021/test_main.py | 61 ++++++ 29 files changed, 1400 insertions(+) create mode 100644 weeks/week-03/solutions/augchao/caesar_shift.py create mode 100644 weeks/week-03/solutions/augchao/test_caesar_shift.py create mode 100644 weeks/week-16/solutions/1114405021/0610/AI_LoG.md create mode 100644 weeks/week-16/solutions/1114405021/0610/README.md create mode 100644 weeks/week-16/solutions/1114405021/0610/digit_root.py create mode 100644 weeks/week-16/solutions/1114405021/0610/test_digit_root.py create mode 100644 weeks/week-17/solutions/1114405021/0618/README.md create mode 100644 weeks/week-17/solutions/1114405021/0618/assets/radar.png create mode 100644 weeks/week-17/solutions/1114405021/0618/benchmark.py create mode 100644 weeks/week-17/solutions/1114405021/0618/plot.py create mode 100644 weeks/week-17/solutions/1114405021/0618/results.json create mode 100644 weeks/week-17/solutions/1114405021/0618/test_plot.py create mode 100644 weeks/week-17/solutions/1114405021/0618/test_security.py create mode 100644 weeks/week-18/solutions/1114405021-new/AI_LoG.md create mode 100644 weeks/week-18/solutions/1114405021-new/README.md create mode 100644 weeks/week-18/solutions/1114405021-new/TEST_LOG.md create mode 100644 weeks/week-18/solutions/1114405021-new/main-easy.py create mode 100644 weeks/week-18/solutions/1114405021-new/main.py create mode 100644 weeks/week-18/solutions/1114405021-new/test_main.py create mode 100644 weeks/week-18/solutions/1114405021/AI_LoG.md create mode 100644 weeks/week-18/solutions/1114405021/AT_LoG.md create mode 100644 weeks/week-18/solutions/1114405021/README.md create mode 100644 weeks/week-18/solutions/1114405021/TEST_LOG.md create mode 100644 weeks/week-18/solutions/1114405021/caesar-easy.py create mode 100644 weeks/week-18/solutions/1114405021/caesar.py create mode 100644 weeks/week-18/solutions/1114405021/main-easy.py create mode 100644 weeks/week-18/solutions/1114405021/main.py create mode 100644 weeks/week-18/solutions/1114405021/test_caesar.py create mode 100644 weeks/week-18/solutions/1114405021/test_main.py diff --git a/weeks/week-03/solutions/augchao/caesar_shift.py b/weeks/week-03/solutions/augchao/caesar_shift.py new file mode 100644 index 000000000..c09b2db05 --- /dev/null +++ b/weeks/week-03/solutions/augchao/caesar_shift.py @@ -0,0 +1,35 @@ +"""Letter shift cipher for line-by-line input. + +Set SHIFT to your student ID last digit before submitting, or pass it as the +first command-line argument. +""" + +from __future__ import annotations + +import sys + + +def shift_char(ch: str, shift: int) -> str: + """Shift one alphabetic character, preserving case.""" + if "A" <= ch <= "Z": + base = ord("A") + return chr((ord(ch) - base + shift) % 26 + base) + if "a" <= ch <= "z": + base = ord("a") + return chr((ord(ch) - base + shift) % 26 + base) + return ch + + +def encrypt_line(text: str, shift: int) -> str: + """Encrypt one line by shifting only English letters.""" + return "".join(shift_char(ch, shift) for ch in text) + + +def main() -> None: + shift = int(sys.argv[1]) if len(sys.argv) > 1 else 0 + for line in sys.stdin: + print(encrypt_line(line.rstrip("\n"), shift)) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/weeks/week-03/solutions/augchao/test_caesar_shift.py b/weeks/week-03/solutions/augchao/test_caesar_shift.py new file mode 100644 index 000000000..3026209e6 --- /dev/null +++ b/weeks/week-03/solutions/augchao/test_caesar_shift.py @@ -0,0 +1,24 @@ +import unittest + +from caesar_shift import encrypt_line, shift_char + + +class CaesarShiftTests(unittest.TestCase): + def test_uppercase_wraps(self): + self.assertEqual(shift_char("Z", 3), "C") + + def test_lowercase_wraps(self): + self.assertEqual(shift_char("z", 3), "c") + + def test_preserves_non_letters(self): + self.assertEqual(shift_char(" ", 5), " ") + + def test_encrypt_keeps_punctuation(self): + self.assertEqual(encrypt_line("Hello, World!", 3), "Khoor, Zruog!") + + def test_encrypt_handles_mixed_case(self): + self.assertEqual(encrypt_line("aZy", 2), "cBa") + + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/weeks/week-16/solutions/1114405021/0610/AI_LoG.md b/weeks/week-16/solutions/1114405021/0610/AI_LoG.md new file mode 100644 index 000000000..64168857c --- /dev/null +++ b/weeks/week-16/solutions/1114405021/0610/AI_LoG.md @@ -0,0 +1,13 @@ +# AI_LoG.md + +## 我問 AI 什麼 + +請幫我根據 week-16 的數字根題目設計至少 3 個 unittest 測試案例,必須包含基本案例、edge case 與 `n < 1` 的例外案例。 + +## AI 給了什麼 + +AI 建議用一個多位數、單一位數與例外案例來覆蓋核心行為,並提醒錯誤訊息要精準比對 `n must be >= 1`。 + +## 我改了什麼 + +我把測試補成 4 個案例,除了基本案例、edge case 和例外案例外,再加一個重複降階案例,確認 `digit_root` 會反覆相加直到剩下 base 以內的一位數。另把實作固定為 base 8,符合我這次的學號對照結果。 diff --git a/weeks/week-16/solutions/1114405021/0610/README.md b/weeks/week-16/solutions/1114405021/0610/README.md new file mode 100644 index 000000000..3f2f3c1f0 --- /dev/null +++ b/weeks/week-16/solutions/1114405021/0610/README.md @@ -0,0 +1,39 @@ +# 0610 Digit Root + +This solution follows the week-16 starter and uses base 8. + +## Files + +- `digit_root.py`: implementation of `digit_root(n)` +- `test_digit_root.py`: unit tests +- `AT_LoG.md`: AI prompt log and what I changed + +## Run + +```bash +python -m unittest -v +``` + +## PR SOP + +### Branch + +- Create and work on `feature/wk16-0610-1114405021`. + +### Red → Green + +- First commit should be a failing test commit with prefix `test:`. +- Second commit should be the implementation commit with prefix `feat:`. + +### Pull Request + +- base: `main` +- compare: `feature/wk16-0610-1114405021` + +### PR Description + +Must include these three items: + +- Completed item: `digit_root` for week-16 in-class drill +- Run command: `python -m unittest -v` +- Dependencies: none \ No newline at end of file diff --git a/weeks/week-16/solutions/1114405021/0610/digit_root.py b/weeks/week-16/solutions/1114405021/0610/digit_root.py new file mode 100644 index 000000000..d741e5eed --- /dev/null +++ b/weeks/week-16/solutions/1114405021/0610/digit_root.py @@ -0,0 +1,23 @@ +"""Digit root in a fixed base. + +This submission uses base 8. +""" + +BASE = 8 + + +def _sum_digits_in_base(n: int, base: int) -> int: + total = 0 + while n > 0: + total += n % base + n //= base + return total + + +def digit_root(n: int) -> int: + if n < 1: + raise ValueError("n must be >= 1") + + while n >= BASE: + n = _sum_digits_in_base(n, BASE) + return n \ No newline at end of file diff --git a/weeks/week-16/solutions/1114405021/0610/test_digit_root.py b/weeks/week-16/solutions/1114405021/0610/test_digit_root.py new file mode 100644 index 000000000..0eaa505e0 --- /dev/null +++ b/weeks/week-16/solutions/1114405021/0610/test_digit_root.py @@ -0,0 +1,24 @@ +"""Tests for digit_root in base 8.""" + +import unittest + +from digit_root import digit_root + + +class TestDigitRoot(unittest.TestCase): + def test_basic_multidigit_number(self): + self.assertEqual(digit_root(64), 1) + + def test_edge_case_single_digit(self): + self.assertEqual(digit_root(7), 7) + + def test_invalid_input_raises(self): + with self.assertRaisesRegex(ValueError, "n must be >= 1"): + digit_root(0) + + def test_repeated_reduction(self): + self.assertEqual(digit_root(511), 7) + + +if __name__ == "__main__": + unittest.main() \ No newline at end of file diff --git a/weeks/week-17/solutions/1114405021/0618/README.md b/weeks/week-17/solutions/1114405021/0618/README.md new file mode 100644 index 000000000..292abbbe1 --- /dev/null +++ b/weeks/week-17/solutions/1114405021/0618/README.md @@ -0,0 +1,170 @@ +# Week 17 Binary Search Performance Evaluation (6/18 Search Lab) + +## 本週目標 + +- 實作線性搜尋與二分搜尋 +- 使用 timeit 量測搜尋效能 +- 分析不同搜尋演算法在不同數據規模下的表現 +- 畫雷達圖呈現多維權衡 +- 輸出最終評估報告 + +## 執行方式 + +### Python 版本 + +- Python 3.9+ + +### 執行指令 + +```bash +# 建立虛擬環境 (可選) +python -m venv venv +# Windows: venv\Scripts\activate +# Linux/Mac: source venv/bin/activate + +# 安裝依賴 +pip install matplotlib + +# 運行測量 +python benchmark.py + +# 生成雷達圖 +python plot.py +``` + +### 測試執行 + +```bash +# 執行所有單元測試 +python -m unittest test_timing test_search test_plot test_security -v +``` + +## 依賴套件 + +- **matplotlib** - 雷達圖繪圖 +- **Python 標準庫** - 其他功能 + +## 補充說明 + +### 專題概述 + +本專題為期末考 **B 區候選池** 搜尋效能實驗室。 + +### 實作內容 + +1. **基礎搜尋實現** + - `linear_search(data, target)` - 線性搜尋,返回索引或 -1 + - `binary_search(data, target)` - 二分搜尋,返回索引或 -1 + - `set_search(data, target)` - Hash 搜尋,返回布林值 + +2. **效能量測** + - 使用 timeit 裝飾器比較搜尋效能 + - 測試不同數據規模 (10000, 50000, 100000) + - 比較基準 (內建 `in`, `bisect`) 與自實現版本 + +3. **性能評估** + - 輸出每種搜尋算法的執行时间 + - 判斷哪种方法更快 + - 进行多维权衡分析 + +4. **雷达图可视化** + - 绘制雷达图呈现三种搜索算法的性能比较 + - 分析不同维度上的优劣势 + - 生成 `assets/radar.png` + +### 技术实现 + +1. **timeit 装饰器** + - 记录执行时间 + - 支持 repeat 参数 + - 提供 records 和 last_elapsed 属性 + +2. **搜索算法** + - 线性搜索:O(n) 最坏情况 + - 二分搜索:O(log n) 最坏情况,需要排序 + - Hash 搜索:O(1) 平均情况,需要额外空间 + +3. **性能评估** + - 比较不同数据规模下的表现 + - 分析小规模 vs 大规模效能 + - 评估实现复杂度 + +### 输出结果 + +1. **benchmark.py 输出** + ``` + Data size: 10000 + Linear search (baseline): 0.001234 s + Binary search (baseline): 0.000567 s + Linear search (Python): 0.002345 s + Binary search (Python): 0.001123 s + Faster method: binary + ``` + +2. **雷达图** + - 呈现五个维度:小规模速度、大规模速度、是否需要排序、实现复杂度、最坏情况比较次数 + - 展示各搜索算法在这些维度上的表现 + - 生成 PNG 文件:`assets/radar.png` + +### 验证 + +```bash +# 所有单元测试应通过 +python -m unittest test_timing test_search test_plot test_security -v +# 输出: +OK +``` + +### 如何通过测试 + +1. 确保所有单元测试通过 +2. 运行 benchmark.py 生成 results.json +3. 运行 plot.py 生成雷达图 +4. 确认 assets/radar.png 已生成 + +### 雷达图解读 + +雷达图呈现五个维度: + +1. **Small n Speed**: 小规模数组时的速度比较 +2. **Large n Speed**: 大规模数组时的速度比较 +3. **Setup Cost**: 是否需要预先排序 +4. **Implementation**: 实现复杂度 +5. **Worst Case**: 最坏情况比较次数 + +每个搜索算法在这些维度上的表现不同,没有绝对的赢家,只有针对特定场景的最佳选择。 + +### 安全要求 + +- **OpenSSF 安全编码指南**: + - 使用具体的例外处理 (FileNotFoundError, ValueError 等) + - 使用 with 语句安全开启文件 + - 避免使用隐藏的内置名称 + - 使用 json 而非 pickle 读取文件 + +- 所有安全规则的测试都已纳入 test_security.py + +### 时间复杂度与空间复杂度 + +| 算法 | 时间复杂度 | 空间复杂度 | +|---------|------------|------------| +| 线性搜索 | O(n) | O(1) | +| 二分搜索 | O(log n) | O(1) | +| Hash 搜索 | O(1) 平均 | O(n) | + +### 数据集 + +- **数据规模**:10000, 50000, 100000 +- **数据范围**:0-1000000 +- **目标 K**:121 (100 + 学号末两码) + +### 未来改进 + +1. **并行处理**:并行比较多种搜索算法 +2. **记忆化**:缓存排序结果 +3. **自适应搜索**:动态选择最佳搜索算法 +4. **可视化仪表盘**:交互式性能比较工具 + +--- + +**谢谢!** 希望这个搜索性能评估实验室能帮助您理解不同搜索算法的性能特点。祝您好运! diff --git a/weeks/week-17/solutions/1114405021/0618/assets/radar.png b/weeks/week-17/solutions/1114405021/0618/assets/radar.png new file mode 100644 index 0000000000000000000000000000000000000000..ea143085f1a18fc5383548cd68b0790843df0065 GIT binary patch literal 450097 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

wCZYX68?%2V7YX|4_-_LR*@+*VCP0}Bqj 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