Skip to content

期末考-1111405038-俞星合 - #1339

Open
H-HoYu wants to merge 11 commits into
DevSecOpsLab-CSIE-NPU:mainfrom
H-HoYu:0622/q4
Open

H-HoYu wants to merge 11 commits into
DevSecOpsLab-CSIE-NPU:mainfrom
H-HoYu:0622/q4

Conversation

@H-HoYu

@H-HoYu H-HoYu commented Jun 22, 2026

Copy link
Copy Markdown

RP 摘要 - Binary Search Efficiency

1) 題目摘要

本題要比較線性搜尋(Linear Search)與二分搜尋(Binary Search)在同一組已排序整數陣列上的效能差異,並完成四個重點:

  1. 產生升冪排序整數陣列。
  2. 實作線性搜尋與二分搜尋,回傳是否找到、索引、比較次數。
  3. 使用 timeit 量測兩種搜尋方法的執行時間並比較快慢。
  4. 以雷達圖視覺化多維度比較結果。

本題指定搜尋目標為 K = 138,重點在於呈現 O(n) 與 O(log n) 在比較次數與執行時間上的差異。

2) 測試結果(pytest / unittest 輸出貼字)

測試路徑:weeks/week-18/solutions/1111405038/Binary Search Efficiency

2.1 unittest 輸出

執行指令:

python -m unittest -v test_binary_search_efficiency.py

輸出:

----------------------------------------------------------------------
Ran 0 tests in 0.000s

NO TESTS RAN

2.2 pytest 輸出

執行指令:

pytest -q

輸出:

no tests ran in 0.00s

2.3 補充:直接執行測試腳本輸出

由於目前測試檔採用自訂 run_tests() 流程(非 pytest/unittest 自動蒐集格式),因此補充直接執行結果:

執行指令:

python test_binary_search_efficiency.py

輸出(節錄):

======================================================================
開始執行紅燈測試(Red Light Tests)- 二分搜尋效能
======================================================================
✓ Test Case 1 通過:基本情況:目標值存在於中間
✓ Test Case 2 通過:邊界情況:目標值在最前面
✓ Test Case 3 通過:邊界情況:目標值不存在
✓ Test Case 4 通過:邊界情況:目標值在最後面
======================================================================
✓ 測試結果:4/4 通過
======================================================================

3) 我跟 AI 改了什麼地方

AI_LOG.md 記錄,主要有兩項改動:

  1. 修復雷達圖中文字顯示問題
  • 問題:matplotlib 預設字體導致中文顯示為方格。
  • 調整:在程式開頭加入中文字體與負號設定。
  • 相關設定:
plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
  • 結果:圖表中文可正常顯示。
  1. 雷達圖比較維度優化
  • 原本維度偏概念化,後續改成更聚焦效能分析:
    • 執行時間
    • 平均性能
    • 最壞性能
    • 緩存效率
  • 同步更新了最壞情況計算邏輯(線性約 N、二分約 log2(N))。
  • 結果:雷達圖更能反映兩種搜尋法在不同情境的差異。

撰寫日期:2026-06-22

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant