出版時間:2012-3 出版社:人民郵電出版社 作者:Robert Sedgewick,Kevin Wayne 頁數(shù):955
Tag標簽:無
內容概要
本書全面講述算法和數(shù)據(jù)結構的必備知識,具有以下幾大特色。
算法領域的經典參考書
Sedgewick暢銷著作的最新版,反映了經過幾十年演化而成的算法核心知識體系
內容全面
全面論述排序、搜索、圖處理和字符串處理的算法和數(shù)據(jù)結構,涵蓋每位程序員應知應會的50種算法
全新修訂的代碼
全新的Java實現(xiàn)代碼,采用模塊化的編程風格,所有代碼均可供讀者使用
與實際應用相結合
在重要的科學、工程和商業(yè)應用環(huán)境下探討算法,給出了算法的實際代碼,而非同類著作常用的偽代碼
富于智力趣味性
簡明扼要的內容,用豐富的視覺元素展示的示例,精心設計的代碼,詳盡的歷史和科學背景知識,各種難度的練習,這一切都將使讀者手不釋卷
科學的方法
用合適的數(shù)學模型精確地討論算法性能,這些模型是在真實環(huán)境中得到驗證的
與網絡相結合
配套網站algs4.cs.princeton.edu提供了本書內容的摘要及相關的代碼、測試數(shù)據(jù)、編程練習、教學課件等資源
作者簡介
Robert
Sedgewick 斯坦福大學博士,導師為Donald E.
Knuth,從1985年開始一直擔任普林斯頓大學計算機科學系教授,曾任該系主任,也是Adobe
Systems公司董事會成員,曾在Xerox
PARC、國防分析研究所(institute for
Defense Analyses)和法國國家信息與自動化研究所(INRIA)從事研究工作。他的研究方向包括解析組合學、數(shù)據(jù)結構和算法的分析與設計、程序可視化等。
Kevin Wayne 康奈爾大學博士,普林斯頓大學計算機科學系高級講師,研究方向包括算法的設計、分析和實現(xiàn),特別是圖和離散優(yōu)化
書籍目錄
1 Fundamentals
1.1 Basic Programming Model
1.2 Data Abstraction
1.3 Bags, Queues, and Stacks
1.4 Analysis of Algorithms
1.5 Case Study: Union-Find
2 Sorting
2.1 Elementary Sorts
2.2 Mergesort
2.3 Quicksort
2.4 Priority Queues
2.5 Applications
3 Searching
3.1 Symbol Tables
3.2 Binary Search Trees
3.3 Balanced Search Trees
3.4 Hash Tables
3.5 Applications
4 Graphs
4.1 Undirected Graphs
4.2 Directed Graphs
4.3 Minimum Spanning Trees
4.4 Shortest Paths
5 Strings
5.1 String Sorts
5.2 Tries
5.3 Substring Search
5.4 Regular Expressions
5.5 Data Compression
6 Context
Index
Algorithms
Clients
章節(jié)摘錄
版權頁:插圖:A potential downside to this approach is that we have to work with a specnc programming language, possibly making it difficult to separate the idea of the algorithmfrom the details of its implementation. Our implementations are designed to mitigatethis difficulty, by using programming constructs that are both found in many modernlanguages and needed to adequately describe the algorithms. We use only a small subset of Java. While we stop short of formally defining thesubset that we use, you will see that we make use of relatively few Java constructs, andthat we emphasize those that are found in many modern programming languages. Thecode that we present is complete, and our expectation is that you will download it andexecute it, on our test data or test data of your own choosing. We refer to the programming constructs, software libraries, and operating systemfeatures that we use to implement and describe algorithms as our programming model.In this section and SECTION 1.2, we fully describe this programming model. The treatment is self-contained and primarily intended for documentation and for your reference in understanding any code in the book. The model we describe is the same modelintroduced in our book An Introduction to Programming in lava: An Interdisciplinary Approach, which provides a slower-paced introduction to the material. For reference, the figure on the facing page depicts a complete Java program thatillustrates many of the basic features of our programming model. We use this code forexamples when discussing language features, but defer considering it in detail to page 46 (it implements a classic algorithm known as binary search and tests it for an application known as whitelist filtering). We assume that you have experience programmingin some modern language, so that you are likely to recognize many of these features inthis code. Page references are included in the annotations to help you find answers toany questions that you might have. Since our code is somewhat stylized and we striveto make consistent use of various Java idioms and constructs, it is worthwhile even forexperienced Java programmers to read the information in this section.
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載