常用算法深入學習實錄

常用算法深入學習實錄
定價:534
NT $ 534
  • 作者:張子言
  • 出版社:電子工業出版社
  • 出版日期:2013-10-01
  • 語言:簡體中文
  • ISBN10:7121213230
  • ISBN13:9787121213236
  • 裝訂:504頁 / 普通級 / 1-1
 

內容簡介

對於任何一門編程語言來說,算法都是程序的「靈魂」。正是因為算法如此重要,所以筆者精心編寫了本書,希望通過書中的內容引領廣大讀者一起探討學習算法的奧秘,帶領廣大讀者真正步入程序開發的高級世界。

本書共分15章,循序漸進、由淺入深地詳細講解算法的核心內容,並通過具體實例的實現過程演練各個知識點的具體用法。本書首先詳細講解算法的基礎知識,剖析了將算法稱為「程序靈魂」的原因。然后詳細講解算法技術的核心內容,主要包括八大算法思想、數據結構、樹、圖、查找、內部排序、外部排序和文件等知識點的具體用法。接下來通過具體實例詳細講解各種算法經典問題的解決方案,主要包括解決經典的數據結構問題、解決數學問題、解決趣味問題、解決圖像問題和解決奧賽問題的具體方案等。另外,書中還講解了算法技術在現實編程項目中的作用和具體用法。
 

目錄

第1章 都說算法是程序的「靈魂」
1.1 開始學習算法
1.1.1 算法的特征和發展由來
1.1.2 何為算法
1.2 計算機中的算法
1.2.1 認識計算機中的算法
1.2.2 為什麼是程序的「靈魂」
1.3 表示算法的方法
1.3.1 用流程圖來表示算法
1.3.2 用N—S流程圖來表示算法
1.3.3 用計算機語言表示算法
1.4 學好算法的秘訣

第2章 分析妙趣橫生的算法思想
2.1 八大算法思想
2.2 比較「笨」的枚舉算法思想
2.2.1 枚舉算法基礎
2.2.2 實踐演練
2.3 聰明一點的遞推算法思想
2.3.1 遞推算法基礎
2.3.2 實踐演練
2.4 充分利用自己的遞歸算法思想
2.4.1 遞歸算法基礎
2.4.2 實踐演練
2.5 各個擊破的分治算法思想
2.5.1 分治算法基礎
2.5.2 實踐演練
2.6 貪心算法思想並不貪婪
2.6.1 貪心算法基礎
2.6.2 實踐演練
2.7 試探法算法思想是一種委婉的做法
2.7.1 試探法算法基礎
2.7.2 實踐演練
2.8 迭代算法
2.8.1 迭代算法基礎
2.8.2 實踐演練
2.9 模擬算法思想
2.9.1 模擬算法的思路
2.9.2 實踐演練

第3章 走在算法的路上之——分析簡單的
數據結構
3.1 學習編程的注意事項
3.2 什麼是線性表
3.2.1 線性表的特性
3.2.2 順序表操作
3.2.3 鏈表操作
3.3 守規矩的先進先出的隊列
3.3.1 隊列基礎
3.3.2 鏈隊列和循環隊列
3.3.3 隊列的基本操作
3.3.4 隊列的鏈式存儲
3.4 后進先出的棧
3.4.1 什麼是棧
3.4.2 棧的基本分類
3.4.3 實踐演練

第4章 走在算法的路上之——樹
4.1 樹引發的關系
4.1.1 樹的概念
4.1.2 何謂二叉樹
4.1.3 二叉樹存儲
4.1.4 操作二叉樹
4.1.5 遍歷二叉樹
4.1.6 測試二叉樹
4.1.7 線索二叉樹
4.1.8 線索二叉樹的表示
4.1.9 實踐演練線索二叉樹的操作
4.2 霍夫曼樹
4.2.1 霍夫曼樹基礎
4.2.2 實踐演練

第5章 走在算法的路上之——圖
5.1 從哥尼斯堡七橋問題說起
5.2 幾個相關概念
5.3 存儲結構
5.3.1 表示頂點之間相鄰關系的鄰接矩陣
5.3.2 鄰接表
5.3.3 合作的產物——十字鏈表
5.3.4 實踐演練
5.4 遍歷圖
5.4.1 深度優先搜索
5.4.2 廣度優先搜索
5.4.3 遍歷算法的那點事
5.4.4 測試圖的遍歷實例
5.5 圖的連通性
5.5.1 無向圖的連通分量
5.5.2 最小生成樹
5.5.3 關鍵路徑
5.6 尋求最短的路徑
5.6.1 求某一頂點到其他各頂點的最短路徑
5.6.2 任意一對頂點間的最短路徑

第6章 體驗查找算法帶來的魅力
6.1 幾個相關概念
6.2 基於線性表的查找法
6.2.1 順序查找法
6.2.2 折半查找法
6.2.3 分塊查找法
6.3 基於樹的查找
6.3.1 二叉排序樹
6.3.2 平衡二叉排序樹
6.4 哈希法
6.4.1 哈希法基礎
6.4.2 處理沖突
6.4.3 哈希表的查找過程
6.5 索引查找
6.5.1 索引查找的過程
6.5.2 實踐演練

第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.3 交換類排序法
7.3.1 冒泡排序(相鄰比序法)
7.3.2 快速排序
7.4 選擇類排序法
7.4.1 直接選擇排序
7.4.2 樹形選擇排序
7.4.3 堆排序
7.4.4 實踐演練
7.5 歸並排序
7.5.1 歸並排序思想
7.5.2 二路歸並算法的思路
7.5.3 實現歸並排序
7.5.4 實踐演練
7.6 基數排序
7.6.1 多關鍵字排序
7.6.2 鏈式基數排序

第8章 外部排序和文件
8.1 外部信息方便了我們的生活
8.1.1 磁帶存儲器
8.1.2 磁盤存儲器
8.2 外部排序的基本方法
8.2.1 磁盤排序
8.2.2 磁帶排序
8.3 什麼是文件
8.4 文件的組織方式
8.4.1 順序文件
8.4.2 索引文件
8.4.3 ISAM文件
8.4.4 VSAM文件
8.4.5 散列文件
8.4.6 多關鍵字文件

第9章 從應聘開始談算法
9.1 面試
9.1.1 面試前的准備
9.1.2 常見的面試錯誤
9.2 常見的算法筆試題

第10章 經典的數據結構問題
10.1 約瑟夫環
10.2 大整數運算
10.2.1 數組實現大整數運算
10.2.2 使用鏈表實現大整數運算
10.3 計算機進制轉換
10.4 將中序表達式轉換為后序表達式

第11章 解決數學問題
11.1 最大公約數和最小公倍數
11.2 哥德巴赫猜想
11.3 完全數
11.4 親密數
11.5 自守數
11.6 方程求解
11.6.1 高斯消元法解方程組
11.6.2 用二分法解非線性方程
11.6.3 用牛頓迭代法解非線性方程
11.7 矩陣運算
11.8 一元多項式運算
11.8.1 一元多項式的加法運算
11.8.2 一元多項式的減法運算

第12章 解決趣味問題
12.1 歌星大獎賽
12.2 借書方案
12.3 打魚還是曬網
12.4 捕魚和分魚
12.5 出售金魚
12.6 平分七筐魚
12.7 繩子的長度和井深
12.8 雞兔同籠
12.9 漢諾塔
12.9.1 遞歸法
12.9.2 非遞歸法
12.10 馬踏棋盤
12.10.1 使用循環查找法
12.10.2 使用遞歸法
12.10.3 使用棧方法
12.11 三色球問題
12.12 新郎和新娘問題
12.13 計算年齡幾何

第13章 解決圖像問題
13.1 八皇后問題
13.1.1 使用遞歸法
13.1.2 使用循環法
13.2 生命游戲
13.3 黑白棋問題
13.4 騎士迷宮問題
13.5 迷宮中的所有路徑

第14章 算法的經典問題
14.1 存錢利息最大化
14.2 背包問題
14.2.1 使用動態規划法
14.2.2 使用遞歸法
14.3 農夫過河
14.4 三色旗
14.5 取石子
14.6 停車場管理
14.7 約瑟夫生者死者游戲

第15章 解決奧賽問題
15.1 孿生素數問題
15.2 百錢買百雞問題
15.3 馬克思手稿中的數學題
15.4 正整數分解為質因數
15.5 水仙花數
15.6 素數
15.6.1 求1000以內的所有素數
15.6.2 求1000以內的回文素數
15.6.3 求1000以內的平方回文數
15.7 階乘
15.7.1 使用遞歸法
15.7.2 實現大數的階乘
15.8 青蛙過河
15.9 過河卒
15.10 素數組合
15.11 校驗碼問題
15.12 老師排座位
15.13 模擬立體圖
15.14 采藥問題
15.15 等價表達式問題
15.16 購買年貨問題
網路書店 類別 折扣 價格
  1. 新書
    $534