出版時(shí)間:2012-1 出版社:機(jī)械工業(yè) 作者:管西京
Tag標(biāo)簽:無
內(nèi)容概要
算法是指在有限步驟內(nèi)求解某一問題所使用的一組定義明確的規(guī)則。程序員都會(huì)看重?cái)?shù)據(jù)結(jié)構(gòu)和算法的作用,水平越高,就越能理解算法的重要性。算法不僅是運(yùn)算工具,更是程序的靈魂?!毒幊趟惴ㄐ率肿詫W(xué)手冊(cè)》循序漸進(jìn)、由淺入深地詳細(xì)講解了基于C語言算法的核心技術(shù),并通過具體實(shí)例的實(shí)現(xiàn)過程演練了各個(gè)知識(shí)點(diǎn)的具體使用流程。全書共11章,分為4篇。1~2章是基礎(chǔ)篇,介紹算法開發(fā)所必需具備的基本知識(shí),逐一講解了9種算法思想的知識(shí);3~5章是核心技術(shù)篇,逐一講解了線性結(jié)構(gòu)、樹層次關(guān)系結(jié)構(gòu)、網(wǎng)狀關(guān)系結(jié)構(gòu)等基本知識(shí);6~8章是提高篇,逐一講解了查找算法、內(nèi)部排序算法、外部排序和文件等知識(shí);9~11章是典型實(shí)戰(zhàn)篇,分別詳細(xì)講解算法在數(shù)據(jù)結(jié)構(gòu)和經(jīng)典數(shù)學(xué)問題中的解法,通過多個(gè)典型實(shí)例的實(shí)現(xiàn)過程,詳細(xì)講解算法在常見領(lǐng)域中的綜合應(yīng)用流程,并穿插介紹了項(xiàng)目的實(shí)現(xiàn)技巧。全書采用故事性與趣味性相結(jié)合的對(duì)話講解方式,并穿插了學(xué)習(xí)技巧和職場(chǎng)生存法則,引領(lǐng)讀者全面掌握算法。
《編程算法新手自學(xué)手冊(cè)》不但適用于算法的初學(xué)者,也適用于有一定C語言基礎(chǔ)基礎(chǔ)的讀者。
書籍目錄
前言
第1章 算法——程序的靈魂
1.1 了解算法
1.1.1 算法的特征和發(fā)展由來
1.1.2 為什么是程序的靈魂
1.1.3 何謂算法
1.1.4 算法的特性
1.2 算法的表示方法——流程圖
1.3 算法的另一種表示方法——N——S流程圖表示法
1.4 用計(jì)算機(jī)語言表示算法
1.5 算法在編程中的應(yīng)用
1.6 總結(jié)
職場(chǎng)點(diǎn)撥——職場(chǎng)的“算法”
第2章 9種算法思想
2.1 枚舉算法思想
2.1.1 枚舉算法的特點(diǎn)
2.1.2 算法思路
2.1.3 應(yīng)用實(shí)例
2.1.4 總結(jié)
2.2 遞推算法思想
2.2.1 遞推算法的思路
2.2.2 順推法實(shí)例
2.2.3 逆推法實(shí)例
2.3 遞歸算法思想
2.3.1 遞歸算法的特點(diǎn)
2.3.2 遞歸算法實(shí)例
2.4 分治算法思想
2.4.1 分治算法的思路
2.4.2 看一個(gè)經(jīng)典問題——找出假幣
2.4.3 應(yīng)用實(shí)例——大數(shù)相乘
2.4.4 應(yīng)用實(shí)例——世界杯比賽日程安排
2.5 貪心算法思想
2.5.1 貪心算法的思路
2.5.2 應(yīng)用實(shí)例——裝箱問題
2.5.3 應(yīng)用實(shí)例——找零方案
2.6 試探法算法思想
2.6.1 試探法算法的思路
2.6.2 應(yīng)用實(shí)例——八皇后問題
2.6.3 應(yīng)用實(shí)例——彩票組合
2.7 動(dòng)態(tài)規(guī)劃算法
2.7.1 動(dòng)態(tài)規(guī)劃算法的思路
2.7.2 應(yīng)用實(shí)例
2.8 迭代算法思想
2.8.1 迭代算法的思路
2.8.2 應(yīng)用實(shí)例
2.9 模擬算法思想
2.9.1 模擬算法的思路
2.9.2 應(yīng)用實(shí)例——猜數(shù)游戲
2.9.3 應(yīng)用實(shí)例——擲骰子游戲
2.10 最后做一個(gè)評(píng)價(jià)
2.10.1 算法優(yōu)劣標(biāo)準(zhǔn)
2.10.2 算法效率的衡量方法
職場(chǎng)點(diǎn)撥——程序員面試面面觀
第3章 最簡(jiǎn)單的線性結(jié)構(gòu)
3.1 線性表
3.1.1 線性表的特性
3.1.2 順序表的基本操作實(shí)現(xiàn)
3.1.3 鏈表基本操作實(shí)現(xiàn)
3.2 先進(jìn)先出的結(jié)構(gòu)——隊(duì)列
3.2.1 隊(duì)列簡(jiǎn)介
3.2.2 隊(duì)列的抽象數(shù)據(jù)類型定義
3.2.3 鏈隊(duì)列和循環(huán)隊(duì)列
3.2.4 隊(duì)列的基本操作
3.2.5 隊(duì)列的鏈?zhǔn)酱鎯?chǔ)
3.2.6 應(yīng)用實(shí)例——電信排號(hào)程序
3.3 后進(jìn)先出的結(jié)構(gòu)——棧
3.3.1 什么是棧
3.3.2 棧的基本操作
3.3.3 應(yīng)用實(shí)例
職場(chǎng)點(diǎn)撥——同事相處之道
第4章 層次關(guān)系結(jié)構(gòu)——樹
4.1 基本概念
4.1.1 樹的定義
4.1.2 樹的相關(guān)術(shù)語
4.1.3 樹的基本操作概況
4.2 二叉樹
4.2.1 二叉樹的定義
4.2.2 二叉樹的性質(zhì)
4.3 二叉樹的存儲(chǔ)
4.3.1 順序存儲(chǔ)結(jié)構(gòu)
4.3.2 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
4.3.3 二叉樹操作
4.3.4 二叉樹遍歷
4.3.5 使用二叉樹
4.4 線索二叉樹
4.4.1 線索二叉樹的表示
4.4.2 線索二叉樹的操作
4.5 最優(yōu)二叉樹——赫夫曼樹
4.5.1 幾個(gè)相關(guān)概念
4.5.2 構(gòu)造赫夫曼樹的過程
4.5.3 赫夫曼編碼
職場(chǎng)點(diǎn)撥——談職業(yè)素養(yǎng)
第5章 網(wǎng)狀關(guān)系結(jié)構(gòu)——圖
5.1 圖的定義
5.2 圖的幾個(gè)概念
5.3 圖的存儲(chǔ)結(jié)構(gòu)
5.3.1 鄰接矩陣
5.3.2 鄰接表
5.3.3 十字鏈表
5.3.4 創(chuàng)建圖
5.4 圖的遍歷
5.4.1 深度優(yōu)先搜索
5.4.2 廣度優(yōu)先搜索
5.4.3 遍歷算法的常見應(yīng)用
5.4.4 測(cè)試圖遍歷實(shí)例
5.5 圖的連通性問題
5.5.1 無向圖的連通分量
5.5.2 最小生成樹
5.5.3 關(guān)鍵路徑
5.6 最短路徑
5.6.1 求某一頂點(diǎn)到其他各頂點(diǎn)的最短路徑
5.6.2 求任意一對(duì)頂點(diǎn)間的最短路徑
職場(chǎng)點(diǎn)撥——和領(lǐng)導(dǎo)相處
第6章 常用算法——查找
6.1 查找的基本概念
6.2 基于線性表的查找法
6.2.1 順序查找法
6.2.2 折半查找法
6.2.3 分塊查找法
6.3 基于樹的查找法
6.3.1 二叉排序樹
6.3.2 平衡二叉排序樹
6.4 計(jì)算式查找法——散列法
6.4.1 散列函數(shù)的構(gòu)造方法
6.4.2 處理沖突的方法
6.4.3 散列表的查找過程
6.4.4 散列法性能分析
6.5 索引查找
6.5.1 索引查找基礎(chǔ)
6.5.2 索引查找算法的應(yīng)用
職場(chǎng)點(diǎn)撥——尋兼職
第7章 常用算法——內(nèi)部排序
7.1 排序基礎(chǔ)
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 直接選擇排序(Straight Selection Sort)
7.4.2 樹形選擇排序
7.4.3 堆排序
7.5 歸并排序
7.5.1 歸并排序思想
7.5.2 二路歸并算法
7.5.3 歸并排序的實(shí)現(xiàn)方法
7.6 各種排序方法的綜合比較
職場(chǎng)點(diǎn)撥——兼職可靠嗎?
第8章 外部排序和文件
8.1 外存信息的特性
8.1.1 磁帶存儲(chǔ)器
8.1.2 磁盤存儲(chǔ)器
8.2 外排序的基本方法
8.2.1 磁盤排序
8.2.2 磁帶排序
8.3 文件的基本概念
8.3.1 文件中的常用基本概念
8.3.2 文件的有關(guān)操作
8.4 文件的組織方式
8.4.1 順序文件
8.4.2 索引文件
8.4.3 ISAM文件
8.4.4 VSAM文件
8.4.5 散列文件
8.4.6 多關(guān)鍵字文件
職場(chǎng)點(diǎn)撥——換工作的注意事項(xiàng)
第9章 算法在數(shù)學(xué)領(lǐng)域中的應(yīng)用
9.1 求兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)
9.2 哥德巴赫猜想的近似證明
9.3 三色球問題
9.4 百錢買百雞問題
9.5 完全數(shù)
9.6 親密數(shù)
9.7 水仙花數(shù)
9.8 自守?cái)?shù)
9.9 素?cái)?shù)
9.9.1 求素?cái)?shù)
9.9.2 回文素?cái)?shù)
9.9.3 平方回文數(shù)
9.10 階乘
9.10.1 遞歸計(jì)算階乘
9.10.2 大數(shù)的階乘
9.11 新郎和新娘的問題
9.12 年齡幾何
9.13 三色球問題
9.14 馬克思手稿中的數(shù)學(xué)題
9.15 正整數(shù)分解質(zhì)因數(shù)
9.16 方程求解
9.16.1 求解線性方程組介紹
9.16.2 求解非線性方程組介紹
9.16.3 高斯消元法求解線性方程組
9.16.4 二分法解非線性方程
9.16.5 牛頓迭代法解非線性方程
9.17 矩陣運(yùn)算
9.18 孿生素?cái)?shù)
9.18.1 孿生素?cái)?shù)介紹
9.18.2 求解孿生素?cái)?shù)
9.19 一元多項(xiàng)式運(yùn)算
9.19.1 編程實(shí)現(xiàn)一元多項(xiàng)式的加法運(yùn)算
9.19.2 編程實(shí)現(xiàn)一元多項(xiàng)式的減法運(yùn)算
職場(chǎng)點(diǎn)撥——談學(xué)習(xí)方法
第10章 數(shù)據(jù)結(jié)構(gòu)問題
10.1 約瑟夫環(huán)
10.2 大整數(shù)運(yùn)算
10.2.1 用數(shù)組實(shí)現(xiàn)大整數(shù)運(yùn)算
10.2.2 用鏈表實(shí)現(xiàn)大整數(shù)運(yùn)算
10.3 計(jì)算機(jī)進(jìn)制轉(zhuǎn)換
10.4 中序表達(dá)式轉(zhuǎn)換為后序表達(dá)式
職場(chǎng)點(diǎn)撥——團(tuán)隊(duì)成員的素質(zhì)
第11章 算法的經(jīng)典問題
11.1 存錢利息最大化
11.2 歌星大獎(jiǎng)賽
11.3 借書方案知多少
11.4 打魚還是曬網(wǎng)
11.5 捕魚和分魚
11.6 出售金魚
11.7 平分七筐魚
11.8 繩子的長(zhǎng)度和井深
11.9 雞兔同籠
11.10 漢諾塔
11.10.1 遞歸法
11.10.2 非遞歸法
11.11 背包問題
11.11.1 動(dòng)態(tài)規(guī)劃法
11.11.2 遞歸法
11.12 馬踏棋盤
11.12.1 循環(huán)查找
11.12.2 遞歸法實(shí)現(xiàn)
11.12.3 棧實(shí)現(xiàn)
11.13 八皇后問題
11.13.1 遞歸法
11.13.2 循環(huán)法
11.14 農(nóng)夫過河
11.15 青蛙過河
11.16 三色旗
11.17 取石子
11.18 生命游戲
11.19 黑白棋問題
11.20 停車場(chǎng)管理
11.21 約瑟夫生者死者游戲
11.22 騎士迷宮問題
職場(chǎng)點(diǎn)撥——談升職
章節(jié)摘錄
版權(quán)頁(yè):插圖:分治算法的經(jīng)典問題是找出假幣。給你一個(gè)裝有16個(gè)硬幣的袋子,在這16個(gè)硬幣中有一個(gè)是偽造的,并且那個(gè)偽造的硬幣比真的硬幣要輕一些。我們的任務(wù)是找出這個(gè)偽造的硬幣。為了幫助我們完成這個(gè)任務(wù),現(xiàn)提供一臺(tái)可用宋比較兩組硬幣重量的儀器,利用這臺(tái)儀器,可以判斷這兩組硬幣的重量是否相同。先比較硬幣1與硬幣2的重量,如果硬幣1比硬幣2輕,則硬幣1是偽造的;如果硬幣2比硬幣1輕,則硬幣2是偽造的,這樣就完成了任務(wù)。如果兩枚硬幣重量相等,則繼續(xù)比較,開始比較硬幣3和硬幣4。同理如果有…個(gè)硬幣輕一些,則完成尋找假幣的任務(wù);如果兩枚硬幣重量相等,則繼續(xù)比較硬幣5和硬幣6。按照上述方式,最多通過8次比較宋判斷假幣的存在并完成任務(wù)。還有一種解決方法可以解決上述問題,就是利用分治算法。假如把16個(gè)硬幣的例子看成一個(gè)大的問題,然后按照如下3步來解決問題。第1步:把這一問題分成兩個(gè)小問題。隨機(jī)選擇8個(gè)硬幣作為第一組稱為A組,剩下的8個(gè)硬幣作為第二組稱為B組。這樣,就把16個(gè)硬幣的問題分成兩個(gè)8個(gè)硬幣的問題來解決。
編輯推薦
《編程算法新手自學(xué)手冊(cè)》附贈(zèng)DVD-ROM光盤,全書PPT教學(xué)資源,520分鐘講解視頻,全部程序源代碼,百個(gè)應(yīng)用型實(shí)例。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載