出版時間:2012-3 出版社:人民郵電出版社 作者:Robert Sedgewick,Kevin Wayne 頁數(shù):955
Tag標(biāo)簽:無
內(nèi)容概要
本書全面講述算法和數(shù)據(jù)結(jié)構(gòu)的必備知識,具有以下幾大特色。
算法領(lǐng)域的經(jīng)典參考書
Sedgewick暢銷著作的最新版,反映了經(jīng)過幾十年演化而成的算法核心知識體系
內(nèi)容全面
全面論述排序、搜索、圖處理和字符串處理的算法和數(shù)據(jù)結(jié)構(gòu),涵蓋每位程序員應(yīng)知應(yīng)會的50種算法
全新修訂的代碼
全新的Java實(shí)現(xiàn)代碼,采用模塊化的編程風(fēng)格,所有代碼均可供讀者使用
與實(shí)際應(yīng)用相結(jié)合
在重要的科學(xué)、工程和商業(yè)應(yīng)用環(huán)境下探討算法,給出了算法的實(shí)際代碼,而非同類著作常用的偽代碼
富于智力趣味性
簡明扼要的內(nèi)容,用豐富的視覺元素展示的示例,精心設(shè)計的代碼,詳盡的歷史和科學(xué)背景知識,各種難度的練習(xí),這一切都將使讀者手不釋卷
科學(xué)的方法
用合適的數(shù)學(xué)模型精確地討論算法性能,這些模型是在真實(shí)環(huán)境中得到驗(yàn)證的
與網(wǎng)絡(luò)相結(jié)合
配套網(wǎng)站algs4.cs.princeton.edu提供了本書內(nèi)容的摘要及相關(guān)的代碼、測試數(shù)據(jù)、編程練習(xí)、教學(xué)課件等資源
作者簡介
Robert
Sedgewick 斯坦福大學(xué)博士,導(dǎo)師為Donald E.
Knuth,從1985年開始一直擔(dān)任普林斯頓大學(xué)計算機(jī)科學(xué)系教授,曾任該系主任,也是Adobe
Systems公司董事會成員,曾在Xerox
PARC、國防分析研究所(institute for
Defense Analyses)和法國國家信息與自動化研究所(INRIA)從事研究工作。他的研究方向包括解析組合學(xué)、數(shù)據(jù)結(jié)構(gòu)和算法的分析與設(shè)計、程序可視化等。
Kevin Wayne 康奈爾大學(xué)博士,普林斯頓大學(xué)計算機(jī)科學(xué)系高級講師,研究方向包括算法的設(shè)計、分析和實(shí)現(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é)摘錄
版權(quán)頁:插圖: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.
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載