演算法之美: 隱藏在資料結構背後的原理 (C++版) | 誠品線上

演算法之美: 隱藏在資料結構背後的原理 (C++版)

作者 左飛
出版社 聯合發行股份有限公司
商品描述 演算法之美: 隱藏在資料結構背後的原理 (C++版):本書圍繞演算法與資料結構的話題,並且循序漸進、深入淺出地介紹現代電腦技術中常用的40餘種經典演算法,包含回溯法、分治

內容簡介

內容簡介 本書圍繞演算法與資料結構的話題,並且循序漸進、深入淺出地介紹現代電腦技術中常用的40餘種經典演算法,包含回溯法、分治法、貪心法和動態規劃等演算法設計觀念。同時,本書也系統性地講解連結串列、堆疊、佇列、樹、圖、集合與字典等常用的資料結構。同時,透過22個經典問題(包括約瑟夫環問題、河內塔問題、八皇后問題和騎士巡邏問題等)的解說,逐步揭開隱藏在資料結構背後的演算法原理,試圖協助讀者充實知識基礎,啟動思維技巧,最終衝破阻礙提升程式設計能力的重重藩籬。

作者介紹

作者介紹 ■作者簡介左飛作者左飛,C++專家,擅長撰寫具原創性質的IT著作,其著作《程式揭秘-從C C++程式碼探索電腦系統的運作原理》與《演算法之美:隱藏在資料結構背後的原理(C++版)》皆被列為博碩文化[中文原創經典]之一。

產品目錄

產品目錄 前言目錄44 種演算法22 個經典問題第 1 章 從資料到演算法1.1 資料與資料結構1.1.1 資料及其類型1.1.2 資料結構簡介1.2 演算法1.2.1 演算法的概念1.2.2 演算法的分析1.2.3 演算法的設計1.3 C++中的STL1.3.1 STL 簡介1.3.2 STL 的組成1.3.3 STL 的不同版本參考文獻第 2 章 指標與陣列——也談中國古代兵制2.1 指標2.1.1 記憶體與位址2.1.2 指標的語法2.1.3 使用指標變數2.1.4 函數與參數傳遞2.2 陣列2.2.1 結構型資料類型2.2.2 定義與初始化陣列2.2.3 陣列與指標2.2.4 陣列的抽象資料類型2.3 陣列應用舉例2.3.1 Z 字形編排問題2.3.2 大整數乘法問題2.3.3 九宮格問題2.4 動態記憶體管理2.4.1 關鍵字new 和delete2.4.2 避免記憶體錯誤參考文獻第 3 章 字串與模式比對——夢裡尋她千百度3.1 基本概念與定義3.1.1 C++中的字串3.1.2 字串抽象資料類型3.2 文字的精確比對3.2.1 BF 演算法3.2.2 MP 演算法3.2.3 KMP 演算法3.2.4 BM 演算法3.2.5 BMH 演算法3.3 文字的模糊比對3.3.1 全域編輯距離3.3.2 局部最佳對準3.3.3 N 元距離模型3.3.4 語音編碼模型參考文獻第 4 章 連結串列——老鷹捉小雞4.1 連結串列的概念4.2 單向連結串列4.2.1 單向連結串列的結構4.2.2 單向連結串列的操作演算法4.2.3 有序連結串列的合併演算法4.3 單向迴圈連結串列4.3.1 單向迴圈連結串列的結構4.3.2 單向迴圈連結串列的實現4.3.3 約瑟夫環的問題4.3.4 魔術師發牌問題4.3.5 拉丁方陣問題4.4 雙向迴圈連結串列4.4.1 雙向迴圈連結串列的結構4.4.2 雙向迴圈連結串列的實現4.4.3 維吉尼亞加密法問題4.5 游標類別的設計與實現4.5.1 游標類別的結構4.5.2 游標類別的實現4.6 STL 與連結串列4.6.1 STL 中連結串列類別的介面4.6.2 巡訪4.6.3 元素的插入與刪除參考文獻第 5 章 先進先出與後進先出——簡單而深刻5.1 堆盤子的策略5.1.1 堆疊的結構5.1.2 堆疊的操作及實現5.1.3 括弧比對問題5.1.4 停車場模擬問題5.2 排隊的智慧5.2.1 佇列的結構5.2.2 佇列的操作及實現5.2.3 舞伴問題5.2.4 楊輝三角問題5.2.5 遊程編碼問題5.3 優先佇列——兼談頁面置換演算法5.3.1 優先佇列的結構5.3.2 優先佇列的實現5.4 STL 的堆疊與佇列5.4.1 STL 的stack5.4.2 STL 的queue5.4.3 STL 的priority_queue參考文獻第 6 章 遞迴——老和尚講故事6.1 遞迴的概念6.1.1 定義6.1.2 應用遞迴的原則6.1.3 遞迴和非遞迴的轉換6.2 分治法6.2.1 分治法簡述6.2.2 河內塔問題6.2.3 傳染病問題6.3 回溯法6.3.1 回溯法簡述6.3.2 迷宮問題6.3.3 八皇后問題參考文獻第 7 章 樹——從紅樓夢說起7.1 認識樹狀結構7.1.1 基本定義7.1.2 術語解釋7.1.3 樹的抽象7.2 花開二枝分外香——二元樹及相關演算法7.2.1 二元樹的定義7.2.2 二元樹的性質7.2.3 二元樹的實現7.2.4 二元樹的巡訪演算法7.2.5 二元樹線索化演算法7.3 合抱之木,生於毫末——從樹到森林7.3.1 樹的儲存表示7.3.2 樹的實現7.3.3 樹與森林的巡訪演算法7.3.4 森林與二元樹的轉換7.4 霍夫曼樹——最佳二元樹編碼演算法7.4.1 霍夫曼編碼7.4.2 建構霍夫曼樹7.4.3 霍夫曼編碼的實現7.5 堆積7.5.1 堆積的概念7.5.2 堆積的建立7.5.3 堆積的操作7.6 基於STL 實現樹結構7.6.1 STL 中的vector7.6.2 STL 的map參考文獻第 8 章 圖——始於柯尼斯堡的七橋問題8.1 圖的基本概念8.1.1 圖的定義8.1.2 圖的術語8.1.3 圖的運算8.1.4 圖的抽象資料類型8.2 圖的儲存與表示8.2.1 圖的鄰接矩陣8.2.2 圖的鄰接表8.2.3 兩種標記法的比較8.3 圖的巡訪8.3.1 歐拉路徑與歐拉迴路8.3.2 哈密頓路徑與哈密頓迴路8.3.3 廣度優先巡訪演算法8.3.4 深度優先巡訪演算法8.4 最短路徑問題8.4.1 固定起點最短路徑問題8.4.2 非固定起點最短路徑問題8.5 最小生成樹8.5.1 最小生成樹的定義8.5.2 克魯斯克爾演算法8.5.3 普林演算法參考文獻第 9 章 樹狀搜索結構——做一名出色的園藝師9.1 二元搜尋樹9.1.1 二元搜尋樹的概念9.1.2 二元搜尋樹的操作9.1.3 二元搜尋樹的實現9.1.4 二元搜尋樹的分析9.2 自平衡的二元搜尋樹——AVL 樹9.2.1 AVL 樹的概念9.2.2 AVL 樹的旋轉9.2.3 AVL 樹的實現9.3 樹中亦有「紅與黑」9.3.1 紅黑樹的概念9.3.2 紅黑樹的操作9.3.3 紅黑樹的實現9.4 基於Trie 樹的單字檢索9.4.1 Trie 樹的概念9.4.2 Trie 樹的表示9.4.3 Trie 樹的實現參考文獻第 10 章 集合與字典——再論搜索之話題10.1 集合論基礎10.1.1 集合的概念10.1.2 集合的運算10.2 集合的實現10.2.1 位置向量集合10.2.2 單向連結串列集合10.3 字典10.3.1 字典的概念10.3.2 搜索運算10.4 雜湊10.4.1 雜湊的概念10.4.2 雜湊函數10.4.3 字串雜湊10.4.4 處理雜湊衝突10.5 拼寫檢查問題10.6 不交集10.6.1 不交集的概念10.6.2 不交集的實現10.6.3 犯罪團伙的問題10.6.4 路徑壓縮的實現10.7 STL 中的set參考文獻第 11 章 排序——有序讓世界更美好11.1 排序問題概述11.1.1 基本概念和定義11.1.2 排序演算法的分類11.1.3 排序演算法的分析11.2 插入排序11.2.1 直接插入排序11.2.2 二分插入排序11.2.3 希爾排序11.3 選擇排序11.3.1 直接選擇排序11.3.2 堆排序11.4 交換排序11.4.1 氣泡排序11.4.2 雞尾酒排序11.4.3 快速排序11.5 合併排序11.6 計數排序參考文獻附錄A 經典求職面試題目

商品規格

書名 / 演算法之美: 隱藏在資料結構背後的原理 (C++版)
作者 / 左飛
簡介 / 演算法之美: 隱藏在資料結構背後的原理 (C++版):本書圍繞演算法與資料結構的話題,並且循序漸進、深入淺出地介紹現代電腦技術中常用的40餘種經典演算法,包含回溯法、分治
出版社 / 聯合發行股份有限公司
ISBN13 / 9789864342488
ISBN10 / 9864342487
EAN / 9789864342488
誠品26碼 / 2681507745007
頁數 / 544
注音版 /
裝訂 / P:平裝
語言 / 1:中文 繁體
尺寸 / 17X23CM
級別 / N:無