算法設計與套用(2017年機械工業出版社出版的圖書)

算法設計與套用(2017年機械工業出版社出版的圖書)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

《算法設計與套用》是2017年機械工業出版社出版的圖書,作者是汪榮貴,深入淺出、全面系統地介紹了常用算法設計與套用技術,內容包括算法設計的策略、排序與查找算法、樹模型算法、圖模型算法、網路流模型算法、組合最佳化算法、深度學習算法、

基本介紹

  • 中文名:算法設計與套用 
  • 作者:汪榮貴
  • 出版社:機械工業出版社
  • ISBN:9787111578055
內容簡介,圖書目錄,出版背景,

內容簡介

《算法設計與套用》深入淺出、全面系統地介紹了常用算法設計與套用技術,內容包括算法設計的策略、排序與查找算法、樹模型算法、圖模型算法、網路流模型算法、組合最佳化算法、深度學習算法、若干重要的專用算法等。《算法設計與套用》將算法的經典內容、前沿內容以及相關的套用技術進行整合,形成一套完整、統一的體系結構,使得讀者在學習算法理論知識的同時,還能系統地掌握算法在套用方面的知識,為後續學習打下紮實的算法設計與套用基礎。《算法設計與套用》各章自成體系,可分別作為獨立單元進行選擇學習,以滿足讀者的差異化需求。每章均配有一定數量的習題,供讀者練習。
《算法設計與套用》內容豐富、思路清晰、實例講解詳細、圖例直觀形象,適合作為計算機及相關專業的本科生教材,也可供工程技術人員和自學讀者學習參考。

圖書目錄

出版說明
前言
第1章 算法設計的基礎知識
1.1 計算機與算法
1.1.1 計算機問題求解
1.1.2 算法的概念
1.1.3 算法的常用表示方法
1.2 算法的效率分析
1.2.1 算法效率的度量
1.2.2 函式增長的階
1.2.3 計算複雜度的估算
1.3 習題
第2章 算法設計的基本策略
2.1 蠻力與貪心
2.1.1 蠻力法
2.1.2 貪心法
2.1.3 套用實例
2.2 遞歸與分治
2.2.1 遞歸法
2.2.2 分治法
2.2.3 套用實例
2.3 回溯與分支限界
2.3.1 回溯法
2.3.2 分支限界法
2.3.3 套用實例
2.4 動態規劃
2.4.1 算法原理
2.4.2 套用實例
2.5 習題
第3章 排序算法設計與分析
3.1 基本排序算法
3.1.1 冒泡排序
3.1.2 插入排序
3.1.3 選擇排序
3.2 進階排序算法
3.2.1 歸併排序
3.2.2 堆排序
3.2.3 快速排序
3.2.4 希爾排序
3.3 線性時間排序算法
3.3.1 計數排序
3.3.2 桶排序
3.3.3 基數排序
3.4 排序算法的套用
3.4.1 排序歸約問題
3.4.2 合併果子問題
3.4.3 樹的構造問題
3.5 習題
第4章 樹模型及其算法設計
4.1 樹的基本模型
4.1.1 樹與二叉樹
4.1.2 平衡樹及其操作
4.1.3 紅黑樹及其操作
4.2 樹的進階模型
4.2.1 鍵樹及其操作
4.2.2 B樹及其操作
4.2.3 二項樹及其操作
4.3 樹模型的基本算法
4.3.1 樹的遞歸遍歷算法
4.3.2 樹的非遞歸遍歷算法
4.3.3 森林與樹的轉換
4.4 樹模型的套用
4.4.1 找問題
4.4.2 串查找與排序問題
4.4.3 輪流摸牌問題
4.4.4 霍夫曼編碼問題
4.5 習題
第5章 圖模型及其算法設計
5.1 圖模型的基礎知識
5.1.1 圖的基本概念
5.1.2 圖的表示與存儲
5.1.3 圖的結構與性質
5.2 圖模型的基本算法
5.2.1 圖的遍歷
5.2.2 小生成樹
5.2.3 短路徑
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 習題
第6章 網路流模型及其算法設計
6.1 網路流問題
6.1.1 網路與流的基本概念
6.1.2 Ford-Fulkerson 算法
6.1.3 EK算法與Dinic算法
6.1.4 預流推進算法
6.2 小費用流問題
6.2.1 小費用流
6.2.2 消圈算法
6.2.3 小費用路徑算法
6.3 二分匹配問題
6.3.1 網路流解法
6.3.2 匈牙利算法
6.3.3 匹配問題
6.4 網路流算法的套用
6.4.1 列車調度問題
6.4.2 毛巾供應問題
6.4.3 植物大戰殭屍問題
6.4.4 穩定婚配問題
6.5 習題
第7章 查找算法設計與分析
7.1 靜態表查找算法
7.1.1 順序表查找
7.1.2 有序表查找
7.1.3 靜態樹表查找
7.1.4 索引順序表查找
7.2 散列表查找算法
7.2.1 散列表的基本概念
7.2.2 散列函式的構造
7.2.3 常用的Hash衝突處理方法
7.2.4 散列表的查找及分析
7.3 搜尋樹查找算法
7.3.1 廣度優先查找
7.3.2 深度優先查找
7.3.3 優先查找
7.4 特殊樹查找算法
7.4.1 二叉查找樹查找算法
7.4.2 紅黑樹查找算法
7.4.3 鍵樹查找算法
7.4.4 B樹查找算法
7.5 查找算法的套用
7.5.1 運動員配對問題
7.5.2 拼寫檢查器問題
7.5.3 八數碼問題
7.5.4 騎士遊歷問題
7.6 習題
第8章 組合最佳化算法設計與分析
8.1 基本組合最佳化算法
8.1.1 線性規划算法
8.1.2 梯度法與共軛梯度法
8.1.3 牛頓法與擬牛頓法
8.2 啟發式組合最佳化算法
8.2.1 禁忌搜尋算法
8.2.2 模擬退火算法
8.2.3 遺傳算法
8.3 深度學習模型與算法
8.3.1 淺層學習與深度學習
8.3.2 深度學習的系統架構
8.3.3 DBN模型及其學習算法
8.3.4 CNN模型及其學習算法
8.4 組合最佳化算法套用
8.4.1 頂點覆蓋問題
8.4.2 裝箱問題
8.4.3 旅行商問題
8.4.4 手寫字元識別問題
8.5 習題
第9章 專用算法設計技術
9.1 數據壓縮算法
9.1.1 數據壓縮概述
9.1.2 無損壓縮算法
9.1.3 有損壓縮算法
9.2 數據加密算法
9.2.1 數據加密概述
9.2.2 傳統加密算法
9.2.3 非對稱加密算法
9.3 字元串匹配算法
9.3.1 BF匹配算法
9.3.2 RK匹配算法
9.3.3 KMP匹配算法
9.3.4 BM匹配算法
9.4 習題
參考文獻

出版背景

前 言計算機已融入人們的生活,改變人們的生活方式,並把人們帶進了如今的資訊時代和網際網路時代。很多年輕人通過掌握計算機核心技術而改善了自己的生活,甚至改變了自己的命運,實現了人生的輝煌。因此,學好計算機、成為高水平計算機專業人才是眾多有志青年夢寐以求的目標。然而,計算機知識浩瀚無邊,無數事實表明:對於初學者來說,如果在學習的開始階段不能抓住一些關鍵核心知識進行重點學習,那么很快就會被計算機知識的海洋湮沒而一事無成。
那么作為一個計算機初學者,首先需要重點學習的核心知識是什麼?事實上,高水平的計算機專業人員多是通過編寫程式的方式進行研發工作的。因此,要想學好計算機,首先必須學好編程知識,能夠寫出高水平的程式。那么什麼叫程式?初學者又該如何學習才能成為真正的編程高手?著名的瑞士計算機科學家、圖靈獎獲得者尼克勞斯?沃爾斯(N. Wirth)教授給出如下著名的程式定義公式並被廣大計算機業內人士認可:
程式=數據結構 算法從本質上說,計算機是一種信息處理工具,處理對象是五花八門的各類數據,必須採用合理的方式或結構來存放這些數據,以便能夠進行方便快速的存取。這就是數據結構要解決的問題,也是優秀程式設計師必須掌握的基本知識。
算法則是問題求解的計算思路或步驟。計算機畢竟只是一部機器,它不能直接面對和解決現實問題,而需要人類將現實問題抽象成一定的數學模型,再通過一定的算法對數學模型進行求解。因此,算法是分析問題、解決問題的核心內容,是程式的靈魂。算法設計技術是程式設計師安身立命的根本,也是計算機科學與技術學科的重要基石。
因此,要學好計算機,首先必須學好數據結構與算法設計知識。
算法設計是一種思維的藝術,需要一定的抽象思維能力和數學知識。這為廣大初學者學習和掌握算法設計知識帶來一定的困難,使得算法設計技術一直難以得到普及,在一定程度上阻隔了眾多計算機學子的夢想。因此,多年來筆者一直很想編寫一本適合的算法設計教材來解決這個問題,以滿足廣大讀者學習和掌握算法設計技術的需要。
為使本書達到上述目的,筆者著重考慮如下兩個要點:
、突出套用。一項技術有了具體的套用,大家自然會感興趣,興趣是好的老師和學習動力。因此,本書採用比較獨特的編寫方式,不僅在每個章節穿插豐富的套用實例來驗證算法的正確性、有效性和實用性,而且介紹和討論了若干專用算法的設計技術,使得讀者在學習算法設計理論知識的同時,還能夠系統地掌握算法套用方面的知識。
第二、強調可讀性。本書站在本科生低年級的思維角度進行編寫,在保證表達準確的前提下,儘可能用樸實的語言深入淺出地介紹算法設計技術,著重突出算法設計的思想和本質,而不僅僅是數學上的形式化描述。同時,本書輔以生動的圖形解釋,使讀者能夠對算法有更加清晰、全面的理解。需要說明的是,本書並沒有為了增加可讀性而降低知識的深度,只是通過比較恰當的方式把相關知識表達得更加清楚明白,使得廣大讀者通過自己的努力就可以不太困難地掌握算法設計與套用的核心技術。
本書內容主要包括算法設計的策略、排序與查找算法、樹模型算法、圖模型算法、網路流模型算法、組合最佳化算法、若干專用算法的設計與套用,全面、系統地介紹了計算機算法設計的基本理論與套用知識。本書力圖將算法的經典內容與前沿內容有機地結合在一起,形成一套完整、統一的體系結構,既有算法設計策略的總結,又有具體算法專題的論述,既有計算理論上的深度剖析,又有專門的算法實用性的討論,使得廣大讀者在獲取算法設計理論知識的同時,能比較系統地掌握算法套用方面的知識,為今後的工作和進一步學習打下紮實的算法設計與套用基礎。
本書首先在第1章介紹算法設計的基礎知識,包括算法的概念、表示和效率分析方法,然後從算法設計策略出發,在第2章詳細介紹了算法設計的基本策略,包括蠻力與貪心策略、遞歸與分治策略、回溯與分支限界策略、動態規劃策略等,並結合實例分析相關策略的套用場合,使得讀者能夠從巨觀上了解和掌握算法設計的核心思想。隨後,在此基礎上用連續5章的篇幅詳細分析和討論了若干基本算法,即排序算法、樹模型算法、圖模型算法、網路流算法和查找算法,這5章是算法設計的核心知識,讀者應熟練掌握。本書在隨後的第8章介紹了組合最佳化及智慧型算法的設計技術,包括組合最佳化的基本算法和啟發式算法、深度學習模型及算法。這部分內容已接近或到達算法學術研究前沿,可為讀者進一步學習深造和研發高水平智慧型程式提供良好的基礎。後,本書在第9章詳細介紹了若干重要專用算法的設計技術,包括數據壓縮算法、數據加密算法以及字元串匹配算法,使讀者能通過學習和使用這些專用算法較好地解決實際問題。
本書讀者對象為計算機科學與技術專業、軟體工程專業、信息安全專業、物聯網專業、電子信息工程專業、自動化專業、信息與計算科學專業的本科生和低年級研究生,以及相關專業的廣大科技工作者。考慮到算法內容浩瀚、種類繁多,掌握全部內容需要大量的時間,為方便廣大讀者進行差異化學習.

相關詞條

熱門詞條

聯絡我們