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