Swift 常用算法 : 經典電腦科學問題的 Swift 實現

[美]大衛·科帕克 著 韓智文 張傑良 等

買這商品的人也買了...

商品描述

《Swift常用算法經典計算機科學問題的Swift實現》通過探究基本的編碼技術和算法,進一步提高讀者的Swift編程技能。讀者在領略書中關於搜索、聚類、圖等領域的示例時,腦海中將會重現一些已經淡忘的重要內容,並將找到“新”問題的經典解決方法。作者David Kopec具有出眾的能力,將計算機科學的核心原理與諸如應用、數據、性能甚至通過工作面試等現實問題加以關聯。
特色內容: 
◆寬度優先、深度優先、A*搜索算法
◆約束滿足問題
◆使用圖算法來解決問題
◆神經網絡、遺傳算法等
◆全部代碼示例採用Swift 4.1編寫

目錄大綱

 

第1章小型問題1 
1.1斐波那契數列1 
1.1.1嘗試遞歸方法1 
1.1.2利用基本情形2 
1.1.3計算緩存技術4 
1.1.4保持斐波那契簡單5 
1.2簡單數據壓縮6 
1.3牢不可破的加密9 
1.3.1數據排序10 
1.3.2加密和解密11 
1.4 π的計算12 
1.5漢諾塔13 
1.5.1漢諾塔的建模14 
1.5.2解決漢諾塔問題15 
1.6實際應用16 
1.7練習17 
第2章搜索問題19 
2.1 DNA搜索19 
2.1.1存儲DNA 20 
2.1.2線性搜索21 
2.1.3二分搜索22 
2.1.4泛型示例24 
2.2迷宮求解25 
2.2.1生成隨機迷宮25 
2.2.2其他迷宮細節26 
2.2.3深度優先搜索28 
2.2.4廣度優先搜索32 
2.2.5 A*搜索34 
2.3傳教士和食人族39 
2.3.1問題表示39 
2.3.2問題解決42
2.4實際應用43 
2.5練習44 
第3章約束滿足問題45 
3.1構建約束滿足問題的解決框架46 
3.2澳大利亞地圖著色問題50 
3.3八皇后問題53 
3.4單詞搜索問題55 
3.5 SEND+MORE=MONEY問題59 
3.6電路板佈局問題61 
3.7實際應用61 
3.8練習62 
第4章圖問題63 
4.1構建圖框架65 
4.1.1 Edge的具體實現70 
4.1.2 Graph的具體實現70 
4.2尋找最短路徑73 
4.2.1定義路徑73 
4.2. 2廣度優先搜索(BFS)回顧74 
4.3最小化網絡建設成本77 
4.3.1權77 
4.3.2尋找最小生成樹82 
4.4在帶權圖中尋找最短路徑88 
4.5實際應用93 
4.6練習94 
第5章遺傳算法95 
5.1生物學背景知識95 
5.2預備知識96 
5.3通用遺傳算法98 
5.4簡單測試105 
5.5重新討論SEND+MORE=MONEY問題108 
5.6遺傳算法面臨的挑戰112
5.7實際應用112 
5.8練習113 
第6章k-均值聚類算法115 
6.1預備知識115 
6.2 k-均值聚類算法120 
6.3基於年齡和地理經度的州長聚類算法124 
6.4 k-均值聚類問題及其擴展128 
6.5實際應用129 
6.6練習130 
第7章簡單神經網絡131 
7.1來自生物學的靈感131 
7.2人工神經網絡133 
7.2.1神經元133 
7.2.2層134 
7.2.3反向傳播135 
7.2.4整體情況137 
7.3預備知識138 
7.3.1借助隨機化138 
7.3.2快速算法140 
7.4激活函數141 
7.5構建神經網絡142 
7.5.1實現神經元143 
7.5.2層的實現144 
7.5.3神經網絡的實現146 
7.6分類問題149 
7.6.1歸一化數據149 
7.6.2經典的iris(鳶尾屬植物)數據集150 
7.6.3葡萄酒分類問題154 
7.7神經網絡問題及其擴展156 
7.8實際應用157 
7.9練習158
第8章其他問題159 
8.1背包問題159 
8.2旅行推銷員問題163 
8.2.1簡單方法164 
8.2.2深層考慮170 
8.3電話號碼助記符170 
8.4井字棋172 
8.4.1管理狀態173 
8.4.2極小極大算法175 
8.5實際應用179 
8.6練習180 
附錄A術語表181 
附錄B更多資源187 
附錄C Swift簡史193