培養與鍛鍊程式設計的邏輯腦:程式設計大賽的128個進階技巧(使用Python)
類似書籍推薦給您
書名:培養與鍛鍊程式設計的邏輯腦:程式設計大賽的128個進階技巧(使用Python)
作者:Christoph Dürr, Jill-Jênn Vie
出版社:博碩
出版日期:4/29/2019
條碼:9789864343836
內容簡介
APCS,CPE最佳參考用書
演算法不僅要用得好,更要用得準
本書介紹多種解決經典問題的演算法技術,描述了問題出現的場景,並用Python提出簡單的解決方案。要正確實作演算法往往不是一件簡單的事情,總需要避開陷阱,也需要應用一些技巧來確保演算法能夠在規定時間內實現。本書在說明演算法實作時也附帶了重要的細節,以幫助讀者能夠詳加理解。
最近幾十年,不同等級的程式設計競賽在世界各地展開,推廣了演算法文化。競賽中所考究的問題一般都是經典問題的變形,使解答隱藏在難以破解的謎面背後,而讓參賽者一籌莫展,因此本書是這方面的絕佳參考書目。書中所使用的是目前最多人使用的程式語言Python,在應用與理解上更加便利!
本書特色:
✤詳細解說如何增進演算法效率並加以實作
✤內容由淺入深,幫助讀者快速掌握技巧
✤以主題導向收錄128種演算法,應試更有效率
✤使用可讀性及易用性皆優秀的程式語言Python
✤參加程式設計比賽或考試的最佳參考書目
本書相關資源:tryalgo.org/code/
作者介紹
作者簡介
Christoph Dürr
法國國家科學研究院研究員,巴黎皮埃爾-瑪麗.居里大學研究院研究員,巴黎皮埃爾-瑪麗.居里大學博士生導師,Operation Research科研組研究主任。
Jill-Jênn Vie
法國高等電力學院博士、演算法講師、擔任法國高等師範學院Paris-Saclay團隊在ACM競賽中的演算法導師。曾任法國國際程式設計大賽Prologin主席,並於2014年獲得Google RISE Award。
譯者簡介
史世強
網名jetwaves。畢業於華中科技大學,法國特魯瓦技術大學碩士,全端工程師。曾在法國Aerow SAS擔任技術負責人,花果山水果品牌聯合創始人。從國中起開始參加資訊學奧林匹克競賽,熱衷於軟體架構、軟體工程和傳統行業資訊化建設。目前著重於人工智慧領域。白雲黃鶴幽默版版主,平時活躍於知乎,同時也是野戰遊戲和健身運動愛好者。
目錄
Chapter1 引言
1-1 程式設計競賽
1-2 我們的選擇:Python
1-3 輸入輸出
1-4 複雜度
1-5 抽象類別和基本資料結構
1-6 技術
1-7 建議
1-8 走得更遠
Chapter2 字串
2-1 易位構詞
2-2 T9: 9 個按鍵上的文字
2-3 使用字典樹進行拼寫糾正
2-4 KMP(Knuth-Morris-Pratt)模式匹配演算法
2-5 最大邊的KMP 演算法
2-6 字串的冪次
2-7 模式匹配演算法:Rabin-Karp 演算法
2-8 字串的最長迴文子串:Manacher 演算法
Chapter3 序列
3-1 網格中的最短路徑
3-2 編輯距離(列文斯登距離)
3-3 最長公共子序列
3-4 升序最長子序列
3-5 兩位玩家遊戲中的必勝策略
Chapter4 陣列
4-1 合併已排序串列
4-2 區間的總和
4-3 區間內的重複內容
4-4 區間的最大總和
4-5 查詢區間中的最小值:線段樹
4-6 計算區間的總和:樹狀陣列(Fenwick 樹)
4-7 有k 個獨立元素的窗口
Chapter5 區間
5-1 區間樹(線段樹)
5-2 區間的聯集
5-3 區間的覆蓋
Chapter6 圖
6-1 使用 Python 對圖編碼
6-2 使用 C++ 或 Java 對圖編碼
6-3 隱式圖
6-4 深度優先巡訪:深度優先演算法
6-5 廣度優先巡訪:廣度優先演算法
6-6 連通分量
6-7 雙連通分量
6-8 拓撲排序
6-9 強連通分量
6-10 可滿足性
Chapter7 圖中的環
7-1 歐拉路徑
7-2 中國郵差問題
7-3 最小長度上的比率權重環:Karp 演算法
7-4 單位時間成本最小比率環
7-5 旅行推銷員問題
Chapter8 最短路徑
8-1 組合的屬性
8-2 權重為 0 或 1 的圖
8-3 權重為正值或空值的圖:Dijkstra 演算法
8-4 隨機權重的圖:Bellman-Ford 演算法
8-5 所有源點─目標頂點對:Floyd-Warshall 演算法
8-6 網格
8-7 變形問題
Chapter9 耦合性與流
9-1 二分圖最大匹配
9-2 最大權重的完美匹配:Kuhn-Munkres 演算法
9-3 無交叉平面匹配
9-4 穩定的婚姻:Gale-Shapley 演算法
9-5 Ford-Fulkerson 最大流演算法
9-6 Edmonds-Karp 演算法的最大流
9-7 Dinic 最大流算法
9-8 s-t 最小割
9-9 平面圖的 s-t 最小割
9-10 運輸問題
9-11 在流和匹配之間化簡
9-12 偏序的寬度:Dilworth 演算法
Chapter10 樹
10-1 霍夫曼編碼
10-2 最近的共同祖先
10-3 樹中的最長路徑
10-4 最小權重生成樹:Kruskal 演算法
Chapter11 集合
11-1 背包問題
11-2 找零問題
11-3 給定總和值的子集
11-4 k 個整數之和
Chapter12 點和多邊形
12-1 凸包問題
12-2 多邊形的測量
12-3 最近點對
12-4 簡單直線多邊形
Chapter13 長方形
13-1 組成長方形
13-2 網格中的最大正方形
13-3 長條圖中的最大長方形
13-4 網格中的最大長方形
13-5 合併長方形
13-6 不相交長方形的合併
Chapter14 計算
14-1 最大公因數
14-2 貝祖等式
14-3 二項式係數
14-4 快速求冪
14-5 質數
14-6 計算算術運算式
14-7 線性方程組
14-8 矩陣序列相乘
Chapter15 窮舉
15-1 鐳射路徑
15-2 精確覆蓋
15-3 數獨
15-4 排列枚舉
15-5 正確計算
除錯工具
參考文獻
立即查看
進階程式設計-APCS解題策略(C語言篇)1/e (1版)
類似書籍推薦給您
內容簡介
APCS(Advanced Placement Computer Science)是指「大學程式設計先修檢測」,學生可藉由APCS的檢測了解自己的程式設計能力,並提供大學端對學生資訊能力的評量依據。
本書適合C語言程式設計課程或想了解APCS的讀者參考。本書主要的內容是C語言的基礎課程,並在各章章末深入探討APCS官網上所公佈的歷屆試題,針對目前公佈的歷屆試題做詳細解析,包括三屆的程式觀念題以及四屆的程式實作題。
本書特色
1.本書以九大章建立C語言程式設計的基礎,並詳細解析APCS官網上所公佈的歷屆試題,包括三屆的程式觀念題以及四屆的程式實作題。
2.本書的整合開發環境介紹Code::Blocks,這是一套跨平台的自由軟體,功能實用而且豐富。
3.搭配豐富的「例題」與「練習題」之實作,加強思考和練習。
作者介紹
作者簡介
王佳盈
現職:中原大學電機工程系助理教授
專長:通訊系統、電腦網路
目錄
第一章:準備工作
1-1 APCS 簡介
1-2 C 語言簡介
1-3 Code::Blocks 安裝
1-4 Code::Blocks 基本使用方法
第二章:基本語法
2-1 程式架構
2-2 標準輸出
2-3 變數宣告
2-4 標準輸入
2-5 變數型態
2-6 基本運算
本章習題
第三章:分支指令
3-1 if
3-2 if else
3-3 switch
本章習題
第四章:迴圈指令
4-1 while
4-2 do while
4-3 for
4-4 break 及continue
4-5 多重迴圈
4-6 重覆解題
本章習題
第五章:陣列與字串
5-1 一維陣列
5-2 字串
5-3 二維陣列
本章習題
第六章:函數
6-1 函式簡介
6-2 自訂函式
本章習題
第七章:遞迴
7-1 遞迴簡介
7-2 遞迴應用
本章習題
第八章:排序與搜尋
8-1 排序
8-2 搜尋
本章習題
第九章:結構與指標
9-1 結構
9-2 指標
9-3 相關應用
本章習題
附錄
www.jywglady.org/apcs-c/
立即查看
TQC+行動裝置進階應用程式設計認證指南解題秘笈:Android 2
類似書籍推薦給您
立即查看
行動裝置進階應用程式設計認證指南-軟體設計領域
類似書籍推薦給您
立即查看
Python程式設計:從入門到進階應用(第五版) (5版)
類似書籍推薦給您
【簡介】
本書是一本全面且實用的Python學習指南,適合初學者與進階使用者。從Python的基礎語法開始,循序漸進地介紹變數、運算子、條件判斷、迴圈、函式、模組與類別等核心概念,幫助讀者建立扎實的程式設計基礎。接著,進一步探討Python內建函式庫的應用,包含字串處理、檔案操作與其他實用工具,使讀者能夠靈活運用Python解決實際問題。
除了基礎概念,本書亦涵蓋進階應用,包括網頁爬蟲、資料庫操作與第三方函式庫的整合,讓讀者能夠擷取、分析資料。
新版內容特別新增Google Colab的介紹,使讀者能夠利用雲端環境撰寫Python程式,無需安裝軟體即可立即執行。此外,還加入了網頁分析與斷詞處理,更新YouBike資料分析與視覺化範例,幫助讀者透過真實案例學習Python的應用。
本書的編排方式強調實作與範例教學,每個章節皆搭配清楚的說明與程式碼示範,讓讀者能夠即學即用。透過本書,讀者不僅能夠掌握Python語言的基礎知識,還能學會如何運用Python來解決實際問題,提升程式開發能力。
【目錄】
CH1 Python 簡介與程式編輯器介紹
1-1 Python 簡介
1-2 Python 開發環境
1-3 Python 的輸入與輸出
1-4 第一個Python 程式
CH2 資料型別、變數與運算子
2-1 Python 資料型別
2-2 變數
2-3 運算子
2-4 字串
2-5 範例練習
CH3 資料儲存容器tuple-串列-字典-集合
3-1 tuple
3-2 串列(list)
3-3 字典(dict)
3-4 集合(set)
3-5 範例練習
CH4 選擇結構
4-1 單向選擇結構
4-2 雙向選擇結構
4-3 多向選擇結構
4-4 巢狀選擇結構
4-5 條件判斷與運算子「in」
CH5 迴圈與生成式
5-1 迴圈結構 — 使用for
5-2 迴圈結構 — 使用while
5-3 巢狀迴圈
5-4 迴圈結構特殊指令的使用—break、continue 與else
5-5 for 迴圈與資料儲存容器
5-6 生成式(comprehension)與產生器(generator)
5-7 範例練習
CH6 函式與遞迴
6-1 函式
6-2 函式範例練習
6-3 函式的輸入與輸出
6-4 函式的說明文件
6-5 函式視為物件
6-6 函式lambda
6-7 產生器(generator)
6-8 內部函式
6-9 closure 函式
6-10 Decorator(裝飾器)
6-11 遞迴
CH7 模組、套件與獨立程式
7-1 模組
7-2 套件
7-3 腳本程式
CH8 類別與例外
8-1 類別
8-2 例外(exception)
CH9 進階字串處理
9-1 ASCII 編碼
9-2 Unicode 編碼
9-3 正規表示式(regular expression)
CH10 資料夾與檔案
10-1 資料夾與檔案相關模組
10-2 存取文字檔
10-3 存取csv 檔
10-4 存取二進位檔
CH11 標準函式庫
11-1 系統相關的模組
11-2 可迭代的函式庫
11-3 時間函式庫
11-4 collections 套件
11-5 綜合應用—備份資料夾
CH12 擷取網頁資料
12-1 模組urllib.request、urllib.response 與requests
12-2 存取JSON
12-3 存取XML
12-4 使用套件Beautiful Soup 存取HTML
CH13 關聯式資料庫
13-1 關聯式資料庫概論
13-2 SQL 語法
13-3 存取SQLite
13-4 Mysql資料庫
13-5 使用SQLAlchemy與PyMySql存取Mysql
CH14 第三方模組
14-1 推薦的第三方模組
14-2 圖片處理
14-3 數學相關
14-4 斷詞處理
CH15 資料蒐集與分析
15-1 下載YouBike資料與分析
15-2 資料儲存到MySQL資料庫
15-3 製作YouBike剩餘車位數與可用車輛數圖表
立即查看