Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

日常與職場的演算法應用

這本書想做的事很簡單:把生活和工作裡常遇到的麻煩事,慢慢拆成一般人也看得懂、也用得上的資料結構與演算法觀念。

你不需要先是工程師,才看得懂這本書。只要你平常會整理資料、排工作、比方案,這本書就和你有關。

這本書適合誰

如果你有以下其中一種需求,這本書會特別適合你:

這本書能帶給你什麼

這本書每一章都會盡量回答三件事:

建議怎麼讀

你可以把這本書當成一本從情境出發的資料結構讀物,而不是一份硬邦邦的教科書。建議這樣讀:

  1. 先看情境,確認這章想解的是哪一種真實問題。

  2. 再看輸入、輸出和限制,理解問題邊界。

  3. 最後再看範例程式,知道演算法怎麼落地。

如果你只是想先建立感覺,也可以只讀內文,不急著看程式。

已完成章節摘要

第一章

第一章:用演算法思維整理日常工作

從待辦排序與時間紀錄切入,先建立全書最重要的基本功:怎麼把一團混亂的事情,整理成可以討論、可以驗證的問題。

第二章

第二章:資料格式與表格:從 CSV 到 Parquet 與 NumPy 檔

聚焦資料匯入與格式轉換,從最常見的表格清理開始,理解欄位型別、缺值和資料快照為什麼重要。

第三章

第三章:排序與搜尋:把「找不到」變成可解的問題

示範穩定排序與二分搜尋,讓「先整理、再找資料」這件事變得更快、更有條理。

第四章

第四章:雜湊與去重:把重複資料變成可管理的清單

把雜湊指紋、重複判定與穩定去重串成一條資料整理流程,適合拿來處理名單合併、客戶清冊和表單清理。

第五章

第五章:圖與路徑:從流程網路找到最短可行路線

把節點、邊、權重與最短路徑觀念帶進日常決策,適合處理通勤規劃、簽核流程與任務依賴。

第六章

第六章:排程與資源分配:把撞期工作排成可執行的一天

把會議、訪談與外勤安排轉成區間排程問題,先找出互不衝突的可行清單,再進一步挑出整體效益更高的安排。

第七章

第七章:預算與組合:在有限資源下挑出最值得的方案

把採購、課程、工具訂閱或功能安排轉成有限預算下的組合選擇,學會在有限資源下做更划算的決定。

第八章

第八章:優先佇列與即時任務:讓插單工作也能穩定處理

把客服工單、突發支援與臨時需求轉成優先佇列問題,學會在不打亂整體節奏的前提下,先處理最急的工作。

第九章

第九章:滑動視窗與異常監控:從連續數據找出該出手的區間

把錯誤率、流量或工單數量轉成連續時間序列,學會用滑動視窗快速找出超標區段和最需要注意的高峰區間。

第十章

第十章:區間合併與容量規劃:把零碎時段整理成可執行的資源配置

把會議室、設備借用與人力班表轉成時段區間,先合併重疊或相接的占用,再找出同時使用量最高的尖峰時段。

第十一章

第十一章:依賴排序與流程編排:把前後關係排成可執行順序

把簽核、上線準備與跨部門交付轉成依賴圖,學會用拓樸排序找出可執行順序,也看懂流程為什麼會卡住。

第十二章

第十二章:配對與指派:把人與任務配成可執行的最佳安排

把已就緒任務、人員技能與資格限制轉成配對問題,學會找出最多可完成的指派,並盤點哪些工作卡在技能缺口。

從哪裡開始最輕鬆

如果你是第一次接觸這類主題,建議這樣讀:

  1. 先看前言和第一章,建立閱讀方式。

  2. 再從第二章到第五章,熟悉資料整理、排序、搜尋和圖的基本概念。

  3. 之後再依自己的需求跳讀排程、預算、監控或任務指派相關章節。

如果你本來就寫程式,也可以同步打開 examples/tests/ 對照閱讀。

章節導覽

閱讀提醒

這本書會盡量用生活化的情境講資料結構與演算法,但不會把內容講得太空泛。你會看到範例程式和測試,是因為這能幫助我們把概念說清楚,而不是要把它變成考試教材。