-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應(yīng)用
-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調(diào)優(yōu)實踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學(xué)習(xí)
圖靈程序設(shè)計叢書:算法(第4版) 版權(quán)信息
- ISBN:9787115293800
- 條形碼:9787115293800 ; 978-7-115-29380-0
- 裝幀:簡裝本
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
圖靈程序設(shè)計叢書:算法(第4版) 本書特色
☆算法領(lǐng)域的經(jīng)典參考書:Sedgewick暢銷著作的*新版,反映了經(jīng)過幾十年演化而成的算法核心知識體系。
☆內(nèi)容全面:全面論述排序、搜索、圖處理和字符串處理的算法和數(shù)據(jù)結(jié)構(gòu),涵蓋每位程序員應(yīng)知應(yīng)會的50種算法。
☆全新修訂的代碼:全新的Java實現(xiàn)代碼,采用模塊化的編程風(fēng)格,所有代碼均可供讀者使用。
☆與實際應(yīng)用相結(jié)合:在重要的科學(xué)、工程和商業(yè)應(yīng)用環(huán)境下探討算法,給出了算法的實際代碼,而非同類著作常用的偽代碼。
☆富于智力趣味性:簡明扼要的內(nèi)容,用豐富的視覺元素展示的示例,精心設(shè)計的代碼,詳盡的歷史和科學(xué)背景知識,各種難度的練習(xí),這一切都將使讀者手不釋卷。
☆科學(xué)的方法:用合適的數(shù)學(xué)模型精確地討論算法性能,這些模型是在真實環(huán)境中得到驗證的。
☆與網(wǎng)絡(luò)相結(jié)合:配套網(wǎng)站algs4.cs.princeton.edu提供了本書內(nèi)容的摘要及相關(guān)的代碼、測試數(shù)據(jù)、編程練習(xí)、教學(xué)課件等資源。
圖靈程序設(shè)計叢書:算法(第4版) 內(nèi)容簡介
《圖靈程序設(shè)計叢書:算法(第4版)》是Sedgewick之巨著,與高德納TAOCP一脈相承,是算法領(lǐng)域經(jīng)典的參考書,涵蓋所有程序員必須掌握的50種算法,全面介紹了關(guān)于算法和數(shù)據(jù)結(jié)構(gòu)的**知識,并特別針對排序、搜索、圖處理和字符串處理進行了論述。第4版具體給出了每位程序員應(yīng)知應(yīng)會的50個算法,提供了實際代碼,而且這些Java代碼實現(xiàn)采用了模塊化的編程風(fēng)格,讀者可以方便地加以改造。配套網(wǎng)站提供了《圖靈程序設(shè)計叢書:算法(第4版)》內(nèi)容的摘要及更多的代碼實現(xiàn)、測試數(shù)據(jù)、練習(xí)、教學(xué)課件等資源。
圖靈程序設(shè)計叢書:算法(第4版) 目錄
1.1 基礎(chǔ)編程模型
1.1.1 Java程序的基本結(jié)構(gòu)
1.1.2 原始數(shù)據(jù)類型與表達式
1.1.3 語句
1.1.4 簡便記法
1.1.5 數(shù)組
1.1.6 靜態(tài)方法
1.1.7 API
1.1.8 字符串
1.1.9 輸入輸出
1.1.10 二分查找
1.1.11 展望
1.2 數(shù)據(jù)抽象
1.2.1 使用抽象數(shù)據(jù)類型
1.2.2 抽象數(shù)據(jù)類型舉例
1.2.3 抽象數(shù)據(jù)類型的實現(xiàn)
1.2.4 更多抽象數(shù)據(jù)類型的實現(xiàn)
1.2.5 數(shù)據(jù)類型的設(shè)計
1.3 背包、隊列和棧
1.3.1 API
1.3.2 集合類數(shù)據(jù)類型的實現(xiàn)
1.3.3 鏈表
1.3.4 綜述
1.4 算法分析
1.4.1 科學(xué)方法
1.4.2 觀察
1.4.3 數(shù)學(xué)模型
1.4.4 增長數(shù)量級的分類
1.4.5 設(shè)計更快的算法
1.4.6 倍率實驗
1.4.7 注意事項
1.4.8 處理對于輸入的依賴
1.4.9 內(nèi)存
1.4.10 展望
1.5 案例研究:union—find算法
1.5.1 動態(tài)連通性
1.5.2 實現(xiàn)
1.5.3 展望
第2章 排序
2.1 初級排序算法
2.1.1 游戲規(guī)則
2.1.2 選擇排序
2.1.3 插入排序
2.1.4 排序算法的可視化
2.1.5 比較兩種排序算法
2.1.6 希爾排序
2.2 歸并排序
2.2.1 原地歸并的抽象方法
2.2.2 自頂向下的歸并排序
2.2.3 自底向上的歸并排序
2.2.4 排序算法的復(fù)雜度
2.3 快速排序
2.3.1 基本算法
2.3.2 性能特點
2.3.3 算法改進
2.4 優(yōu)先隊列
2.4.1 API
2.4.2 初級實現(xiàn)
2.4.3 堆的定義
2.4.4 堆的算法
2.4.5 堆排序
2.5 應(yīng)用
2.5.1 將各種數(shù)據(jù)排序
2.5.2 我應(yīng)該使用哪種排序算法
2.5.3 問題的歸約
2.5.4 排序應(yīng)用一覽
第3章 查找
3.1 符號表
3.1.1 API
3.1.2 有序符號表
3.1.3 用例舉例
3.1.4 無序鏈表中的順序查找
3.1.5 有序數(shù)組中的二分查找
3.1.6 對二分查找的分析
3.1.7 預(yù)覽
3.2 二叉查找樹
3.2.1 基本實現(xiàn)
3.2.2 分析
3.2.3 有序性相關(guān)的方法與刪除操作
3.3 平衡查找樹
3.3.12—3查找樹
3.3.2 紅黑二叉查找樹
3.3.3 實現(xiàn)
3.3.4 刪除操作
3.3.5 紅黑樹的性質(zhì)
3.4 散列表
3.4.1 散列函數(shù)
3.4.2 基于拉鏈法的散列表
3.4.3 基于線性探測法的散列表
3.4.4 調(diào)整數(shù)組大小
3.4.5 內(nèi)存使用
3.5 應(yīng)用
3.5.1 我應(yīng)該使用符號表的哪種實現(xiàn)
3.5.2 集合的API
3.5.3 字典類用例
3.5.4 索引類用例
3.5.5 稀疏向量
第4章 圖
4.1 無向圖
4.1.1 術(shù)語表
4.1.2 表示無向圖的數(shù)據(jù)類型
4.1.3 深度優(yōu)先搜索
4.1.4 尋找路徑
4.1.5 廣度優(yōu)先搜索
4.1.6 連通分量
4.1.7 符號圖
4.1.8 總結(jié)
4.2 有向圖
4.2.1 術(shù)語
4.2.2 有向圖的數(shù)據(jù)類型
4.2.3 有向圖中的可達性
4.2.4 環(huán)和有向無環(huán)圖
4.2.5 有向圖中的強連通性
4.2.6 總結(jié)
4.3 *小生成樹
4.3.1 原理
4.3.2 加權(quán)無向圖的數(shù)據(jù)類型
4.3.3 *小生成樹的API和測試用例
4.3.4 Prim算法
4.3.5 Prim算法的即時實現(xiàn)
4.3.6 Kruskal算法
4.3.7 展望
4.4 *短路徑
4.4.1 *短路徑的性質(zhì)
4.4.2 加權(quán)有向圖的數(shù)據(jù)結(jié)構(gòu)
4.4.3 *短路徑算法的理論基礎(chǔ)
4.4.4 Dijkstra算法
4.4.5 無環(huán)加權(quán)有向圖中的*短路徑算法
4.4.6 一般加權(quán)有向圖中的*短路徑問題
4.4.7 展望
第5章 字符串
5.1 字符串排序
5.1.1 鍵索引計數(shù)法
5.1.2 低位優(yōu)先的字符串排序
5.1.3 高位優(yōu)先的字符串排序
5.1.4 三向字符串快速排序
5.1.5 字符串排序算法的選擇
5.2 單詞查找樹
5.2.1 單詞查找樹
5.2.2 單詞查找樹的性質(zhì)
5.2.3 三向單詞查找樹
5.2.4 三向單詞查找樹的性質(zhì)
5.2.5 應(yīng)該使用字符串符號表的哪種實現(xiàn)
5.3 子字符串查找
5.3.1 歷史簡介
5.3.2 暴力子字符串查找算法
5.3.3 Knuth—Morris—Pratt子字符串查找算法
5.3.4 Boyer—Moore字符串查找算法
5.3.5 Rabin—Karp指紋字符串查找算法
5.3.6 總結(jié)
5.4 正則表達式
5.4.1 使用正則表達式描述模式
5.4.2 縮略寫法
5.4.3 正則表達式的實際應(yīng)用
5.4.4 非確定有限狀態(tài)自動機
5.4.5 模擬NFA的運行
5.4.6 構(gòu)造與正則表達式對應(yīng)的NFA
5.5 數(shù)據(jù)壓縮
5.5.1 游戲規(guī)則
5.5.2 讀寫二進制數(shù)據(jù)
5.5.3 局限
5.5.4 熱身運動:基因組
5.5.5 游程編碼
5.5.6 霍夫曼壓縮
第6章 背景
索引
圖靈程序設(shè)計叢書:算法(第4版) 節(jié)選
警告:這段類型轉(zhuǎn)換的用例代碼和1.3.2.2節(jié)所示的有所不同。你可能會以為需要使用Object而非Stack。在使用泛型時,Java會在編譯時檢查類型的安全性,但會在運行時拋棄所有這些信息。因此在運行時語句右側(cè)就變成了Stack()或者只剩下了Stack(),因此我們必須將它們轉(zhuǎn)化為Stack()。
問 在棧為空時調(diào)用pop()會發(fā)生什么?
答 這取決于實現(xiàn)。對于我們在算法1.2中給出的實現(xiàn),你會得到一個NullPointerException異常。對于我們在本書的網(wǎng)站上給出的實現(xiàn),我們會拋出一個運行時異常以幫助用戶定位錯誤。一般來說,在應(yīng)用廣泛的代碼中這類檢查越多越好。
問 既然有了鏈表,為什么還要學(xué)習(xí)如何調(diào)整數(shù)組的大小?
答 我們還將會學(xué)習(xí)若干抽象數(shù)據(jù)類型的示例實現(xiàn),它們需要使用數(shù)組來實現(xiàn)一些鏈表難以實現(xiàn)的操作。ResizingArrayStack是控制它們的內(nèi)存使用的樣板。
問 為什么將Node聲明為嵌套類?為什么使用private?
答 將Node聲明為私有的嵌套類之后,我們可以將Node的方法和實例變量的訪問范圍限制在包含它的類中。私有嵌套類的一個特點是只有包含它的類能夠直接訪問它的實例變量,因此無需將它的實例變量聲明為public或是private。專業(yè)背景較強的讀者注意:非靜態(tài)的嵌套類也被稱為內(nèi)部類,因此從技術(shù)上來說我們的Node類也是內(nèi)部類,盡管非泛型的類也可以是靜態(tài)的。
問 當(dāng)我輸入javac Stack.java運行算法1.2和其他程序時,我發(fā)現(xiàn)了Stack.class和Stack$Node.class兩個文件。第二個文件是做什么用的?
答 第二個文件是為內(nèi)部類Node創(chuàng)建的。Java的命名規(guī)則會使用$分隔外部類和內(nèi)部類。
問 Java標準庫中有棧和隊列嗎?
答 有,也沒有。Java有一個內(nèi)置的庫,叫做java.util.Stack,但你需要棧的時候請不要使用它。它新增了幾個一般不屬于棧的方法,例如獲取第i個元素。它還允許從棧底添加元素(而非棧頂),所以它可以被當(dāng)做隊列使用!盡管擁有這些額外的操作看起來可能很有用,但它們其實是累贅。我們使用某種數(shù)據(jù)類型不僅僅是為了獲得我們能夠想象的各種操作,也是為了準確地指定我們所需要的操作。這么做的主要好處在于系統(tǒng)能夠防止我們執(zhí)行一些意外的操作。java.util.Stack的API是寬接口的一個典型例子,我們通常會極力避免出現(xiàn)這種情況。
圖靈程序設(shè)計叢書:算法(第4版) 作者簡介
塞奇威克(Robert Sedgewick),斯坦福大學(xué)博士,導(dǎo)師為Donald E. Knuth,從1985年開始一直擔(dān)任普林斯頓大學(xué)計算機科學(xué)系教授,曾任該系主任,也是Adobe Systems公司董事會成員,曾在Xerox PARC、國防分析研究所(institute for Defense Analyses)和法國國家信息與自動化研究所(INRIA)從事研究工作。他的研究方向包括解析組合學(xué)、數(shù)據(jù)結(jié)構(gòu)和算法的分析與設(shè)計、程序可視化等。
韋恩(Kevin Wayne),康奈爾大學(xué)博士,普林斯頓大學(xué)計算機科學(xué)系高級講師,研究方向包括算法的設(shè)計、分析和實現(xiàn),特別是圖和離散優(yōu)化。
- >
巴金-再思錄
- >
羅庸西南聯(lián)大授課錄
- >
伊索寓言-世界文學(xué)名著典藏-全譯本
- >
大紅狗在馬戲團-大紅狗克里弗-助人
- >
朝聞道
- >
史學(xué)評論
- >
上帝之肋:男人的真實旅程
- >
苦雨齋序跋文-周作人自編集