算法設計與分析——基於C++編程語言的描述

王秋芬 趙剛彬

  • 出版商: 清華大學
  • 出版日期: 2023-01-01
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • ISBN: 7302610681
  • ISBN-13: 9787302610687
  • 相關分類: C++ 程式語言
  • 立即出貨 (庫存 < 4)

  • 算法設計與分析——基於C++編程語言的描述-preview-1
  • 算法設計與分析——基於C++編程語言的描述-preview-2
  • 算法設計與分析——基於C++編程語言的描述-preview-3
算法設計與分析——基於C++編程語言的描述-preview-1

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

商品描述

本書註重理論與實踐緊密結合,系統介紹算法設計方法、分析技巧和 C++ 編程實戰。作者本著“易理 解,重實用”的指導思想,結合多年的教學經驗,以算法設計策略為主線,沿著“算法思想—算法設計—構造 實例—算法描述—算法分析—C++實戰”的思路組織學習內容,共包括算法及基礎知識、貪心法、分治法、動 態規劃、搜索法、隨機化算法、線性規劃問題與網絡流、數論算法及計算幾何算法和 NP完全理論等9章內 容。為突出教材的可讀性、可用性及前沿性,每章增設了學習目標、閱讀材料及習題解析,配套資源包括實 驗指導書、教學大綱、教學課件、經典案例源代碼、微課視頻、課程網站等內容。 本書內容豐富、思路清晰、實例講解詳細、圖例直觀形象,適合作為電腦及其相關專業的本科生和研 究生教材,也可供工程技術人員和自學讀者學習參考,還適合作為參加 ACM 程序設計大賽的愛好者的參 考書或培訓教材。

目錄大綱

目錄

第1章算法基礎

1.1算法的基本概念

1.1.1學習算法的重要性

1.1.2算法的定義及特性

1.1.3算法的描述方式

1.1.4算法與程序的區別

1.2算法設計的一般過程

1.3算法分析

1.3.1算法分析的概念

1.3.2時間復雜性

1.3.3空間復雜性

1.3.4算法漸進復雜性

1.3.5算法復雜性的權衡考慮

1.4遞歸

1.4.1認知遞歸

1.4.2n的階乘

1.4.3排列問題

1.4.4遞歸算法的復雜性分析

1.5基本數據結構

1.5.1順序表與鏈表

1.5.2棧與隊列

1.5.3樹與圖

1.5.4集合

1.6常用數學公式

1.6.1對數公式

1.6.2組合公式

1.6.3求和公式

1.6.4向下取整和向上取整公式

拓展知識: 算法界十大名師簡介

本章習題

第2章貪心算法

2.1概述

2.1.1貪心算法的基本思想

2.1.2貪心算法的基本要素

2.1.3貪心算法的解題步驟及算法設計模式

2.2會場安排問題

2.3單源最短路徑問題

2.4哈夫曼編碼

2.5最小生成樹

2.5.1Prim算法

2.5.2Kruskal算法

2.5.3兩種算法的比較

拓展知識: 遺傳算法

本章習題

第3章分治算法

3.1概述

3.1.1分治算法的基本思想

3.1.2分治算法的解題步驟

3.2二分查找

3.3循環賽日程表

3.4合並排序

3.5快速排序

拓展知識: 禁忌搜索算法

本章習題

第4章動態規劃

4.1概述

4.1.1動態規劃的基本思想

4.1.2動態規劃的解題步驟

4.1.3動態規劃的基本要素

4.2矩陣連乘問題

4.3凸多邊形最優三角剖分問題

4.4最長公共子序列問題

4.5加工順序問題

4.601背包問題

4.7最優二叉查找樹

拓展知識: 模擬退火算法

本章習題

第5章搜索算法

5.1窮舉搜索

5.2深度優先搜索

5.3回溯算法

5.3.1回溯算法的算法框架及思想

5.3.2子集樹

5.3.3排列樹

5.3.4滿m叉樹

5.4寬度優先搜索

5.5分支限界算法

5.5.1分支限界算法的基本思想

5.5.201背包問題

5.5.3旅行商問題

5.5.4布線問題

5.5.5分支限界算法與回溯算法的比較

拓展知識: 蟻群算法

本章習題

第6章隨機化算法

6.1概述

6.1.1隨機化算法的類型及特點

6.1.2隨機數發生器

6.2數值隨機化算法

6.2.1計算π值的問題及分析

6.2.2計算定積分

6.3蒙特卡羅算法

6.3.1主元素問題

6.3.2素數測試

6.4拉斯維加斯算法

6.4.1整數因子分解問題

6.4.2n皇後問題

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.3最小費用最大流

7.3.1基本概念

7.3.2消圈算法

7.3.3最小費用最大流的變換與應用

拓展知識: 捕食搜索算法

本章習題

第8章數論算法及計算幾何算法

8.1最大公約數

8.1.1歐幾里得算法

8.1.2Stein算法

8.2同餘方程

8.3同餘方程組

8.4線段相交

8.5凸包問題

8.5.1凸包問題的窮舉搜索法

8.5.2凸包問題的分治法

8.6最接近點對問題

8.6.1最接近點對問題的窮舉搜索法

8.6.2最接近點對問題的分治法

拓展知識: 動態進化算法

本章習題

第9章NP完全理論

9.1易解問題和難解問題

9.2P類問題和NP類問題

9.2.1P類問題

9.2.2NP類問題

9.2.3P類問題和NP類問題的關系

9.3NP完全問題

9.3.1多項式變換技術

9.3.2典型的NP完全問題

9.4NP完全問題的近似算法

9.4.1頂點覆蓋問題

9.4.2裝箱問題

9.4.3旅行商問題

9.4.4集合覆蓋問題

拓展知識: DNA計算

本章習題

附錄A習題解析

視頻目錄

Vedio Contents

視 頻 名 稱時長/分鐘位置

算法的基本概念151.1節

算法設計的一般過程311.2節

算法分析概念及時間、空間復雜性101.3.1節

算法漸進復雜性151.3.4節

多項式時間定理證明及O的運算性質121.3.4節

算法的運行時間T(n)建立的依據201.3.4節

算法所占用的空間S(n)建立的依據71.3.4節

貪心算法的基本思想、基本要素152.1節

會場安排問題122.2節

會場安排問題算法的正確性證明112.2節

最優裝載問題算法正確性證明72.2節

單源最短路徑問題算法162.3節

哈夫曼編碼算法182.4節

哈夫曼編碼貪心算法正確性證明202.4節

哈夫曼編碼C++實戰132.4節

最小生成樹Prim算法222.5.1節

最小生成樹Kruskal算法132.5.2節

分治算法的基本思想及二分查找173.1節

循環賽日程表問題73.3節

合並排序163.4節

快速排序213.5節

動態規劃的基本思想、解題步驟、基本要素304.1.1節

矩陣連乘問題164.2節

凸多邊形最優三角剖分274.3節

最長公共子序列問題254.4節

加工順序問題1274.5節

加工順序問題294.5節

01背包問題224.6節

01背包問題的跳躍點算法224.6節

最優二叉查找樹的概念144.7節

最優二叉查找樹174.7節

窮舉搜索與深度優先搜索135.1節

續表

視 頻 名 稱時長/分鐘位置

回溯算法的算法框架及思想275.3.1節

子集樹的概念及算法設計模式125.3.2節

01背包問題145.3.2節

01背包問題改進回溯法175.3.2節

最大團問題135.3.2節

排列樹模型及算法設計模式135.3.3節

批處理作業調度問題205.3.3節

旅行商問題175.3.3節

滿m叉樹模型及圖的m著色問題205.3.4節

最小機器重量設計問題145.3.4節

寬度優先搜索125.4節

分支限界算法及01背包問題285.5.1節

旅行商問題分支限界算法175.5.3節

布線問題分支限界算法175.5.4節

隨機化算法概述及隨機數發生器166.1節

數值隨機化算法86.2節

蒙特卡羅算法376.3節

拉斯維加斯算法296.4節

舍伍德算法86.5節

線性規劃問題227.1.1節

約束標準型線性規劃問題的單純性算法397.1.3節

兩階段單純形算法237.1.3節

最大網絡流的基本概念187.2.1節

增廣路算法127.2.2節

最大網絡流的變換與應用157.2.3節

最小費用最大流消圈算法157.3.2節

最大公約數238.1節

同餘方程218.2節

同餘方程應用——量水問題98.2節

同餘方程組118.3節

線段相交188.4節

凸包問題198.5節

最接近點對問題258.6節

P類問題和NP類問題169.2節

NP完全問題119.3節

NP完全問題的近似算法179.4節