幫助中心 | 我的帳號 | 關於我們

演算法設計與分析(第2版高等學校電腦專業系列教材)

  • 作者:編者:黃宇|責編:張夢玲
  • 出版社:機械工業
  • ISBN:9787111657231
  • 出版日期:2020/07/01
  • 裝幀:平裝
  • 頁數:225
人民幣:RMB 59 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書是在作者多年從事「演算法設計與分析」課程教學和研究的基礎上編寫而成的,系統地介紹了演算法設計與分析的理論、方法和技術。演算法分析與設計的內容很豐富,可以從不同視角進行組織和闡述。本書內容圍繞兩條主線來組織。一條主線是介紹經典的演算法問題,如排序、選擇、圖遍歷等;另一條主線是介紹經典的演算法設計與分析策略,如分治、貪心、動態規劃等。
    本書主要面向電腦專業本科生,以及其他需要學習電腦科學基本知識與了解電腦程序設計背後原理的讀者。

作者介紹
編者:黃宇|責編:張夢玲
    黃宇,南京大學電腦科學與技術系教授,博士生導師,主要研究方向為分散式演算法、分散式系統、系統軟體。曾主持三項國家自然科學基金,並作為主要成員參與了國家973計劃、國家自然科學基金創新群體項目等多項國家重大科研項目。2014年獲得南京大學登峰人才支持計劃資助,聯合指導的博士論文分別獲得2016年、2017年中國電腦學會優秀博士學位論文獎。已在ACM PODC、IEEE SRDS、IEEE Trans.on Computers、IEEE Trans.on Parallel and Distributed Systems等重要國際會議、期刊上發表多篇論文。     在教學方面的成就:曾入選201 8年度國家「高校電腦專業優秀教師獎勵計劃」,獲得2018年度南京大學「劉厚俊獎教金」;所教授的演算法課程入選2019年度「南京大學百層次優質課程」,並被評為2019年度電腦系畢業生「我心目中的好課程」。

目錄
前言
教學建議
第一部分  計算模型
  第1章  抽象的演算法設計與分析
    1.1  RAM模型的引入
      1.1.1  計算的基本概念
      1.1.2  計算模型的基本概念
      1.1.3  RAM模型
      1.1.4  計算模型的選擇:易用性與精確性
    1.2  抽象演算法設計
      1.2.1  演算法問題規約
      1.2.2  演算法正確性證明:數學歸納法
    1.3  抽象演算法分析
      1.3.1  抽象演算法的性能指標
      1.3.2  最壞情況時間複雜度分析
      1.3.3  平均情況時間複雜度分析
    1.4  習題
  第2章  從演算法的視角重新審視數學的概念
    2.1  數學運算背後的演算法操作
      2.1.1  取整□和□
      2.1.2  對數log n
      2.1.3  階乘n!
      2.1.4  常用級數求和□f(i)
      2.1.5  期望E[X]
    2.2  函數的漸近增長率
    2.3  「分治遞歸」求解
      2.3.1  替換法
      2.3.2  分治遞歸與遞歸樹
      2.3.3  Master定理
    2.4  習題
第二部分  從蠻力到分治
  第3章  蠻力演算法設計
    3.1  蠻力選擇與查找
    3.2  蠻力排序
      3.2.1  選擇排序
      3.2.2  插入排序
    3.3  習題
  第4章  分治排序
    4.1  快速排序
      4.1.1  插入排序的不足
      4.1.2  快速排序的改進
      4.1.3  最壞情況時間複雜度分析
      4.1.4  基於遞歸方程的平均情況時間複雜度分析
      4.1.5  基於指標隨機變數的平均情況時間複雜度分析
    4.2  合併排序
    4.3  基於比較的排序的下界
      4.3.1  決策樹的引入
      4.3.2  比較排序的最壞情況時間複雜度的下界
      4.3.3  比較排序的平均情況時間複雜度的下界
    4.4  習題

  第5章  線性時間選擇
    5.1  期望線性時間選擇
      5.1.1  選擇演算法設計
      5.1.2  選擇演算法分析
    5.2  最壞情況線性時間選擇
      5.2.1  選擇演算法設計
      5.2.2  選擇演算法分析
    5.3  習題
  第6章  對數時間查找
    6.1  折半查找
      6.1.1  經典折半查找
      6.1.2  查找峰值
      6.1.3  計算□
    6.2  平衡二叉搜索樹
      6.2.1  二叉搜索樹及其平衡性
      6.2.2  紅黑樹的定義
      6.2.3  紅黑樹的平衡性
    6.3  習題
  第7章  分治演算法設計要素
    7.1  分治演算法的關鍵特徵
    7.2  計算逆序對的個數
      7.2.1  依托于合併排序的逆序對計數
      7.2.2  原地的逆序對計數
    7.3  整數乘法
      7.3.1  簡單分治
      7.3.2  更精細的分治
    7.4  晶元檢測
    7.5  習題
第三部分  從圖遍歷到圖優化
  第8章  圖的深度優先遍歷
    8.1  圖和圖遍歷
    8.2  有向圖上的深度優先遍歷
      8.2.1  遍歷框架
      8.2.2  深度優先遍歷樹
      8.2.3  活動區間
    8.3  有向圖上深度優先遍歷的應用
      8.3.1  拓撲排序
      8.3.2  關鍵路徑
      8.3.3  有向圖中的強連通片
    8.4  無向圖上的深度優先遍歷
      8.4.1  無向圖的深度優先遍歷樹
      8.4.2  無向圖的深度優先遍歷框架
    8.5  無向圖上深度優先遍歷的應用
      8.5.1  容錯連通
      8.5.2  尋找割點
      8.5.3  尋找橋
    8.6  習題
  第9章  圖的廣度優先遍歷
    9.1  廣度優先遍歷
      9.1.1  廣度優先遍歷框架

      9.1.2  有向圖的廣度優先遍歷樹
      9.1.3  無向圖的廣度優先遍歷樹
    9.2  廣度優先遍歷的應用
      9.2.1  判斷二分圖
      9.2.2  尋找k度子圖
    9.3  習題
  第10章  圖優化問題的貪心求解
    10.1  最小生成樹問題與給定源點最短路徑問題
    10.2  Prim演算法
      10.2.1  Prim演算法的正確性
      10.2.2  Prim演算法的實現
      10.2.3  Prim演算法的分析
    10.3  Kruskal演算法
      10.3.1  Kruskal演算法的正確性
      10.3.2  Kruskal演算法的實現與分析
    10.4  最小生成樹貪心構建框架MCE
      10.4.1  從MCE框架的角度分析Prim演算法
      10.4.2  從MCE框架的角度分析Kruskal演算法
    10.5  Dijkstra演算法
      10.5.1  Dijkstra演算法的設計
      10.5.2  Dijkstra演算法的正確性證明與性能分析
    10.6  貪心遍歷框架BestFS
    10.7  習題
  第11章  貪心演算法設計要素
    11.1  貪心演算法的基本結構
    11.2  相容任務調度問題
      11.2.1  直覺的嘗試
      11.2.2  基於任務結束時間的貪心演算法
    11.3  Huffman編碼
      11.3.1  可變長度編碼
      11.3.2  編碼方案的性質
      11.3.3  貪心的Huffman編碼
    11.4  習題
  第12章  圖優化問題的動態規劃求解
    12.1  有向無環圖上的給定源點最短路徑問題
    12.2  所有點對最短路徑問題
      12.2.1  傳遞閉包問題和Shortcut演算法
      12.2.2  所有點對最短路徑:基於路徑長度的遞歸
      12.2.3  Floyd-Warshall演算法:基於中繼節點範圍的遞歸
    12.3  習題
  第13章  動態規劃演算法設計要素
    13.1  動態規劃的動機
    13.2  動態規劃的引入
      13.2.1  基於樸素遍歷的遞歸
      13.2.2  未做規劃的遞歸
      13.2.3  採用動態規劃的遞歸
    13.3  動態規劃的關鍵特徵
    13.4  動態規劃應用舉例
      13.4.1  編輯距離問題
      13.4.2  硬幣兌換問題

      13.4.3  和連續子序列問題
      13.4.4  相容任務調度問題
    13.5  習題
第四部分  圍繞數據結構的演算法設計
  第14章  堆與偏序關係
    14.1  堆的定義
    14.2  堆的抽象維護
      14.2.1  堆的修復
      14.2.2  堆的構建
    14.3  堆的具體實現
    14.4  堆的應用
      14.4.1  堆排序
      14.4.2  基於堆實現優先隊列
    14.5  習題
  第15章  並查集與動態等價關係
    15.1  動態等價關係
    15.2  基於根樹的基礎實現:普通「並」+普通「查」
    15.3  保證合併的平衡性:加權「並」+普通「查」
    15.4  降低查找的代價:加權「並」+路徑壓縮「查」
    15.5  習題
  第16章  哈希表與查找
    16.1  直接定址表:查找表的蠻力實現
    16.2  哈希表的基本原理
    16.3  封閉定址衝突消解
    16.4  開放定址衝突消解
    16.5  習題
  第17章  有限自動機與串匹配
    17.1  蠻力串匹配
    17.2  基於有限自動機的串匹配
    17.3  從有限自動機的角度理解KMP演算法
      17.3.1  對傳統匹配自動機的改進
      17.3.2  自動機構建的原理
      17.3.3  KMP演算法的實現
    17.4  習題
第五部分  演算法分析進階
  第18章  平攤分析
    18.1  平攤分析的動機
    18.2  平攤分析的基本過程
    18.3  MultiPop棧
    18.4  數組擴充
    18.5  二進位計數器
    18.6  基於棧實現隊列
    18.7  習題
  第19章  對手論證
    19.1  對手論證的基本形式
    19.2  選擇或最小元素
    19.3  同時選擇和最小元素
    19.4  選擇次大元素
    19.5  選擇中位數
    19.6  習題

第六部分  計算複雜性初步
  第20章  問題與歸約
    20.1  NP問題
      20.1.1  優化問題和判定問題
      20.1.2  P問題的定義
      20.1.3  NP問題的定義
    20.2  問題間的歸約
      20.2.1  歸約的定義
      20.2.2  歸約的代價與問題難度的比較
    20.3  習題
  第21章  NP完全性理論初步
    21.1  NP完全問題的定義
    21.2  NP完全性證明的初步知識
      21.2.1  一般問題和特例問題
      21.2.2  等價問題
    21.3  習題
  附錄A  數學歸納法
  附錄B  二叉樹
  參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032