1. 程式人生 > >《演算法設計與分析基礎 第二版》pdf

《演算法設計與分析基礎 第二版》pdf

下載地址:網盤下載

內容簡介

編輯
  國外經典教材·電腦科學與技術:該書作者基於教學經驗,開發了一套對演算法進行分類的新方法。內容包括演算法效率分析基礎、蠻力法、分治法、減治法、變治法、動態規劃等11章。各章節均含有習題,書後給出體系提示。

作者簡介:

編輯 作者基於豐富的教學經驗,開發了一套對演算法進行分類的新方法。這套方法站在通用問題求解策略的高度,能對現有的大多數演算法進行準確分類,從而使讀者能夠沿著一條清晰的、一致的、連貫的思路來探索演算法設計與分析這一迷人領域。 本書作為第2版,相對第1版增加了新的習題,還增加了“迭代改進”一章,使得原來的分類方法更加完善。本書十分適合作為演算法設計和分析的基礎教材,也適合任何有興趣探究演算法奧祕的讀者使用,只要讀者具備資料結構和離散數學的知識。本書為英文版。

目錄:

編輯 第1章 緒論 1.1 什麼是演算法 習題1.1 1.2 演算法問題求解基礎 1.2.1 理解問題 1.2.2 瞭解計算裝置的效能 1.2.3 在精確解法和近似解法之間做出選擇 1.2.4 確定適當的資料結構 1.2.5 演算法的設計技術 1.2.6 演算法的描述 1.2.7 演算法的正確性證明 1.2.8 演算法的分析 1.2.9 為演算法寫程式碼 習題1.2 1.3 重要的問題型別 1.3.1 排序 1.3.2 查詢 1.3.3 字串處理 1.3.4 圖問題 1.3.5 組合問題 1.3.6 幾何問題 1.3.7 數值問題 習題1.3 1.4 基本資料結構 1.4.1 線性資料結構 1.4.2 圖 1.4.3 樹 1.4.4 集合與字典 習題1.4 小結 第2章 演算法效率分析基礎 2.1 分析框架 2.1.1 輸入規模的度量 2.1.2 執行時間的度量單位 2.1.3 增長次數 2.1.4 演算法的最優、最差和平均效率 2.1.5 分析框架概要 習題2.1 2.2 漸進符號和基本效率型別 2.2.1 非正式的介紹 2.2.2 符號O 2.2.3 符號Ω 2.2.4 符號? 2.2.5 漸進符號的有用特性 2.2.6 利用極限比較增長次數 2.2.7 基本的效率型別 習題2.2 2.3 非遞迴演算法的數學分析 習題2.3 2.4 遞迴演算法的數學分析 習題2.4 2.5 例題:斐波那契數列 2.5.1 第n個斐波那契數的精確公式 2.5.2 計算斐波那契數的演算法 習題2.5 2.6 演算法的經驗分析 習題2.6 2.7 演算法可視法 小結 第3章 蠻力法 3.1.1 選擇排序 3.1 選擇排序和氣泡排序 3.1.2 氣泡排序 習題3.1 3.2 順序查詢和蠻力字串匹配 3.2.1 順序查詢 3.2.2 蠻力字串匹配 習題3.2 3.3 最近對和凸包問題的蠻力演算法 3.3.1 最近對問題 3.3.2 凸包問題 習題6.6 習題3.3 3.4 窮舉查詢 3.4.1 旅行商問題 3.4.2 揹包問題 3.4.3 分配問題 習題3.4 小結 第4章 分治法 4.1 合併排序 習題4.1 4.2 快速排序 習題4.2 4.3 折半查詢 習題4.3 4.4 二叉樹遍歷及其相關特性 習題4.4 4.5 大整數乘法和Strassen矩陣乘法 4.5.1 大整數乘法 4.5.2 Strassen矩陣乘法 4.6.1 最近對問題 4.6 用分治法解最近對問題和凸包問題 習題4.5 4.6.2 凸包問題 習題4.6 小結 第5章 減治法 5.1 插入排序 習題5.1 5.2 深度優先查詢和廣度優先查詢 5.2.1 深度優先查詢 5.2.2 廣度優先查詢 習題5.2 5.3 拓撲排序 習題5.3 5.4 生成組合物件的演算法 5.4.1 生成排列 5.4.2 生成子集 習題5.4 5.5 減常因子演算法 5.5.2 俄式乘法 5.5.1 假幣問題 5.5.3 約瑟夫斯問題 習題5.5 5.6 減可變規模演算法 5.6.1 計算中值和選擇問題 5.6.2 插值查詢 5.6.3 二叉查詢樹的查詢和插入 5.6.4 拈遊戲 習題5.6 小結 第6章 變治法 6.1 預排序 習題6.1 6.2 高斯消去法 6.2.1 LU分解及其他應用 6.2.2 計算矩陣的逆 6.2.3 計算矩陣的行列式 習題6.2 6.3 平衡查詢樹 6.3.1 AVL樹 6.3.2 2-3樹 習題6.3 6.4 堆和堆排序 6.4.1 堆的概念 6.4.2 堆排序 習題6.4 6.5.1 霍納法則 6.5 霍納法則和二進位制冪 6.5.2 二進位制冪 習題6.5 6.6 問題化簡 6.6.1 求最小公倍數 6.6.2 計算圖中的路徑數量 6.6.3 優化問題的化簡 6.6.4 線性規劃 6.6.5 簡化為圖問題 小結 第7章 時空權衡 7.1 計數排序 習題7.1 7.2 字串匹配中的輸入增強技術 7.2.1 Horspool演算法 7.2.2 Boyer-Moore演算法 習題7.2 7.3 雜湊法 7.3.1 開雜湊(分離鏈) 7.3.2 閉雜湊(開式定址) 習題7.3 7.4 B樹 習題7.4 小結 第8章 動態規劃 8.1 計算二項式係數 習題8.1 8.2 Warshall演算法和Floyd演算法 8.2.1 Warshall演算法 8.2.2 計算完全最短路徑的Floyd演算法 習題8.2 8.3 最優二叉查詢樹 習題8.3 8.4 揹包問題和記憶功能 8.4.1 揹包問題 8.4.2 記憶功能 習題8.4 小結 第9章 貪婪技術 9.1 Prim演算法 習題9.1 9.2 Kruskal演算法 習題9.2 9.3 Dijkstra演算法 習題9.3 9.4 哈夫曼樹 習題9.4 小結 第10章 迭代改進 10.1 單純形法 10.1.1 線性規劃的幾何解釋 10.1.2 單純形法概述 10.1.3 單純形法其他要點 習題10.1 10.2 最大流量問題 習題10.2 10.3 二分圖的最大匹配 習題10.3 10.4 穩定婚姻問題 習題10.4 小結 第11章 演算法能力的極限 11.1 如何求下界 11.1.1 平凡下界 11.1.2 資訊理論下界 11.1.3 敵手下界 11.1.4 問題化簡 習題11.1 11.2 決策樹 11.2.1 排序演算法的決策樹 11.2.2 查詢有序陣列的決策樹 習題11.2 11.3 P、NP和NP完全問題 11.3.1 P和NP問題 11.3.2 NP完全問題 習題11.3 11.4 數值演算法的挑戰 習題11.4 小結 第12章 超越演算法能力的極限 12.1 回溯法 12.1.1 n皇后問題 12.1.2 哈密頓迴路問題 12.1.3 子集和問題 12.1.4 一般性說明 習題12.1 12.2 分支界限法 12.2.1 分配問題 12.2.2 揹包問題 12.2.3 旅行商問題 習題12.2 12.3 NP困難問題的近似演算法 12.3.1 旅行商問題的近似演算法 12.3.2 揹包問題的近似演算法 習題12.3 12.4 解非線性方程的演算法 12.4.1 平分法 12.4.2 試位法 12.4.3 牛頓法 習題12.4 小結 跋 附錄A 演算法分析的實用公式 附錄B 遞推關係簡明指南 習題提示

下載地址:

網盤下載

相關推薦

演算法設計分析基礎 第二pdf

下載地址:網盤下載 內容簡介 編輯   國外經典教材·電腦科學與技術:該書作者基於教學經驗,開發了一套對演算法進行分類的新方法。內容包括演算法效率分析基礎、蠻力法、分治法、減治法、變治法、動態規劃等11章。各章節均含有習題,書後給出體系提示。 作者簡

《計算機演算法設計分析 第4 (王曉東) 課後答案[1-9章]》pdf電子書附下載連結+30個總結JVM虛擬機器的技術文排版好(收藏版)

技術書閱讀方法論 一.速讀一遍(最好在1~2天內完成) 人的大腦記憶力有限,在一天內快速看完一本書會在大腦裡留下深刻印象,對於之後複習以及總結都會有特別好的作用。 對於每一章的知識,先閱讀標題,弄懂大概講的是什麼主題,再去快速看一遍,不懂也沒有關係,但是一定要在不懂的

演算法設計分析基礎【第三】習題1.1 4

演算法設計與分析基礎 習題1.1 4 設計一個[√n]的演算法,n是任意正整數。除了賦值和比較運算,該演算法只能用到基本的四則運算。 程式碼實現: #include "iostream" using namespace std; double n; doubl

《計算機演算法設計分析 第2+第3+第4 (王曉東) 》原書附答案pdf電子書附下載連結+30個總結JVM虛擬機器的技術文排版好(收藏版)

技術書閱讀方法論 一.速讀一遍(最好在1~2天內完成) 人的大腦記憶力有限,在一天內快速看完一本書會在大腦裡留下深刻印象,對於之後複習以及總結都會有特別好的作用。 對於每一章的知識,先閱讀標題,弄懂大概講的是什麼主題,再去快速看一遍,不懂也沒有關係,但是一定要在不懂的

演算法設計分析第二週作業

《演算法設計與分析》第二週作業 標籤(空格分隔): 課堂作業 《演算法設計與分析》第二週作業 題目概要 思路 嘗試一 嘗試二

演算法設計分析基礎 第五章謎題

習題5.1 11.Tromino謎題 Tromino是一個由棋盤上的三個1×1方塊組成的L型骨牌。我們的問題是,如何用Tromino覆蓋一個缺少了一個方塊的2n×2n棋盤。除了這個缺失的方塊,Tromino應該覆蓋棋盤上的所有方塊,Tromino可以任意轉向但不能有重疊。 為此問題

演算法設計分析基礎 第四章謎題

習題4.1 1.擺渡的士兵 n個士兵組成的分隊必須越過一條又深又寬又沒有橋的河。他們注意到在岸旁有兩個12歲大的小男孩在玩划艇。然而船非常小,只能容納兩個男孩或一名士兵。怎樣才能讓士兵渡過河,並且留下兩個男孩操縱這條船?這條船要在岸與岸之間橫渡多少次? 解答:每次只能容納一名士兵,所以士

演算法設計分析基礎 第三章謎題

習題3.1 6.四格拼板 四格拼板是由4個1*1的正方形組成。下面是5種類型的四格拼板: 分別利用以下四格拼板,看看是否有可能在不重疊的情況下完全覆蓋一個8*8的棋盤。 a. 直線拼板   可以,長和寬能被8整除 b. 方形拼板   

演算法設計分析基礎 第六章謎題

習題6.1 9.數字填空 給定n個不同的整數以及一個包含n個空格的序列,每個空格之間事先給定有不等(>或<)符號,請設計一個演算法,將n個整數填入這n個空格中並滿足不等式約束。例如,數4,6,3,1,8可以填在這樣的5個空格中: 解答:將n個正整數從小到大排序,然後將數

演算法設計分析基礎 第七章謎題

習題7.1 6. 祖先問題要求在一棵給定的n頂點二叉樹中,確定一個頂點u是否是頂點v的祖先。設計一個屬於O(n)的輸入增強演算法,使我們可以在常量時間內獲得樹的每一對頂點的足夠資訊,來對問題求解。 分析:一個頂點u是頂點v的祖先,當前僅當先序遍歷u在v的前面,並且後序遍歷u在v的後面。第

演算法設計分析(屈婉玲)pdf

下載地址:網盤下載演算法設計與分析本教材為計算機科學技術專業核心課程“演算法設計與分析”教材。《演算法設計與分析》以演算法設計技術和分析方法為主線來組織各知識單元,主要內容包括基礎知識、分治策略、動態規劃、貪心法、回溯與分支限界、演算法分析與問題的計算複雜度、NP完全性、近似演算法、隨機演算法、處理難解問題的

演算法設計分析基礎

To All Of You: 一個人在接受科技教育時能得到的最珍貴的收穫是能夠終身受用的通用智慧工具。 在討論演算法的書籍中,一般會採用兩種方案中的一種: 1.第一種方案是按照問題的型別對演算法進行分類。這類教材安排了不同的章節分別討論排序,查詢,圖等演算

演算法設計分析基礎》第一、二章

1. 求最大公約數的兩種方法: 第一種,歐幾里德演算法:gcd(m,n)=gcd(m,m%n); 直到m%n為零時,計算結束,最大公約數為此時的m。 第二種,質因數解法:分別找到m和n的所有質因數,最大公約數就是公共質因數的乘積。 求質因數的方法是“埃拉托色尼篩”:設要求

演算法設計分析基礎知識

前言       回顧我以往的部落格,曾想暢遊leetcode的題海,踏遍千山翻遍萬水以求有所進步,刷題到不到一半便因為碩士開題而中道崩殂;曾想成為一名Qt高手,想把Qt的官方文件翻譯成中文,卻在浩如煙海的官方文件中迷失自己,僅僅有幾篇孤零零的翻譯文稿,翻譯計

短除法求最大公約數(轉自演算法設計分析第三

#include<stdio.h> int main() {     /*短除法求最大公約數*/     int i;     int j;     int a;     int b;     int t;     int c=1;     scanf("%d%

演算法設計分析第二章 遞迴 2.7多項式求值問題

/* 多項式求值問題: 有如下多項式: P (x)= An*x^n + An-1*x^(n-1) + ... +a1*x + a0 如果分別對每一項求職,需要n*(n+1)/2個乘法,效率很低 關鍵:採用遞迴式 Pn(x) = An*x^n + An-1*x^(n-1)

演算法設計分析第二章 遞迴 2.6基於遞迴的插入排序

/* 基於遞迴的插入排序: 將待插入的關鍵字插入到已經排好序的序列中 遞迴基:當陣列元素個數n=1時,只有一個元素,已經是排序的 遞迴步:如果前面k-1個元素已經排序,只要將第k個元素逐漸與 前面k-1個元素比較,把他插入到適當位置,即可完成k個元素的排序 遞迴的規律總

演算法設計分析第二次作業

leetcode 241 題目描述:Given a string of numbers and operators, return all possible results from computing all the different possibl

演算法設計分析第二週練習

目錄 Course Schedule(拓撲) Kth Largest Element in an Array(分治演算法) Kth Largest Element in an Array 題目 Find the kth largest element

演算法設計分析作業題】第二週:1. Two Sum

題目 C++ solution class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { ve