算法趣學(第2版)

英昌盛 趙洋 孫宏宇 李闖

  • 出版商: 清華大學
  • 出版日期: 2025-05-01
  • 售價: $348
  • 語言: 簡體中文
  • 頁數: 223
  • ISBN: 7302689296
  • ISBN-13: 9787302689294
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書系統介紹程序設計 中各種常用的基礎算法及典 型案例,包括排序算法、遞 歸算法、數論基礎、組合數 學基礎、貪心算法、分治算 法、動態規劃算法和回溯算 法等內容。 全書以圖文並茂的方式 講解各基礎算法的分析過程 ,側重基礎算法的深入理解 與實踐,配有大量圖表輔助 算法的分析過程,適用於有 一定程序設計基礎、尚未學 習數據結構且對算法分析與 設計感興趣的算法初學者。 本書各章均配有典型案 例和大量圖表,既便於教師 課堂講授,也適合讀者自學 ,可作為高等院校“程序設 計基礎”課程的延伸和“算法 分析與設計”課程的入門教 材,也可供程序設計競賽初 學者參考。

目錄大綱

第1章 環境搭建
1.1 Microsoft Visual C++2010學習版的使用
1.1.1 Visual C++2010學習版的安裝
1.1.2 創建、編輯、編譯和運行項目
1.1.3 為什麽缺少很多選項
1.1.4 為什麽一閃而過
1.1.5 其他配置選項
1.2 Code::Blocks的使用
1.2.1 安裝Code::Blocks
1.2.2 創建項目和編輯源代碼
1.2.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.4.3 計數排序代碼分析
2.4.4 統計句子中字母出現的次數
算法設計練習
第3章 遞歸算法
3.1 漢諾塔問題
3.1.1 漢諾塔問題解題思路分析
3.1.2 漢諾塔問題代碼分析
3.2 全排列問題
3.2.1 無重覆元素的全排列
3.2.2 有重覆元素的全排列
3.3 因子分解問題
3.3.1 因子遞增方式遞歸求解
3.3.2 子問題分解方式遞歸求解
3.3.3 因子分解問題代碼分析
3.4 分形圖形
3.4.1 盒分形思路分析
3.4.2 盒分形代碼分析
算法設計練習
第4章 數論基礎
4.1 餘數和 公約數
4.1.1 餘數
4.1.2 公約數
4.1.3 歐幾里得算法
4.2 素數問題
4.2.1 素數的概念
4.2.2 素數相關的定理
4.2.3 篩選法求素數
4.3 同餘問題
4.3.1 同餘及其性質
4.3.2 線性同餘
算法設計練習
第5章 組合數學基礎
5.1 排列生成算法
5.1.1 序數生成法
5.1.2 字典序生成法
5.1.3 “火星人”問題
5.2 組合生成算法
5.2.1 基於字典序的組合生成算法
5.2.2 基於格雷碼的組合生成算法
算法設計練習
第6章 貪心算法
6.1 結構體
6.2 貪心算法概述
6.3 活動時間安排
6.3.1 活動安排過程分析
6.3.2 活動安排代碼分析
6.4 裝載問題
6.4.1 裝載問題過程分析
6.4.2 裝載問題代碼分析
6.5 可切割背包問題
6.5.1 可切割背包問題分析
6.5.2 可切割背包代碼分析
6.6 刪數問題
6.7 操作系統內存分配
6.7.1 First Fit內存分配
6.7.2 Best Fit內存分配
6.7.3 Worst Fit內存分配
算法設計練習
第7章 分治算法
7.1 快速排序
7.1.1 快速排序過程分析
7.1.2 快速排序代碼分析
7.2 歸並排序
7.2.1 歸並排序過程分析
7.2.2 歸並排序代碼分析
7.3 二分查找
7.3.1 二分查找問題過程分析
7.3.2 二分查找代碼分析
7.4 循環賽
7.4.1 2k循環賽日程表
7.4.2 奇偶循環賽日程表
7.5 大整數乘法
7.5.1 大整數乘法過程分析
7.5.2 大整數乘法代碼分析
算法設計練習
第8章 動態規劃算法
8.1 數字三角形
8.1.1 使用樸素遞歸求解數字三角形問題
8.1.2 使用動態規劃算法求解數字三角形問題
8.2 長公共子序列
8.2.1 長公共子序列問題過程分析
8.2.2 長公共子序列問題代碼分析
8.3 編輯距離
8.3.1 編輯距離的正向生成
8.3.2 操作序列的逆向回溯
8.4 0-1背包問題(一)
8.4.1 0-1背包問題過程分析
8.4.2 0-1背包問題代碼分析
8.5 石子合並
8.5.1 石子合並問題過程分析
8.5.2 石子合並問題代碼分析
算法設計練習
第9章 回溯算法
9.1 八皇後問題
9.1.1 八皇後問題過程分析
9.1.2 八皇後問題代碼分析
9.2 子集和問題
9.2.1 子集和問題過程分析
9.2.2 子集和問題代碼分析
9.3 0-1背包問題(二)
9.3.1 0-1背包問題過程分析
9.3.2 0-1背包問題代碼分析
9.4 裝載問題
9.4.1 裝載問題過程分析
9.4.2 裝載問題代碼分析
9.5 任務分配問題
9.5.1 任務分配問題過程分析
9.5.2 任務分配問題代碼分析
算法設計練習
參考文獻