Algorithms Author: Robert Sedgewick Kevin Wayne | Language: English | ISBN:
B004P8J1NA | Format: PDF
Algorithms Description
This is the eBook version of the printed book.
Essential Information about Algorithms and Data Structures
A Classic Reference
The latest version of Sedgewick’s best-selling series, reflecting an indispensable body of knowledge developed over the past several decades.
Broad Coverage
Full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing, including fifty algorithms every programmer should know.
Completely Revised Code
New Java implementations written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use.
Engages with Applications
Algorithms are studied in the context of important scientific, engineering, and commercial applications. Clients and algorithms are expressed in real code, not the pseudo-code found in many other books.
Intellectually Stimulating
Engages reader interest with clear, concise text, detailed examples with visuals, carefully crafted code, historical and scientific context, and exercises at all levels.
A Scientific Approach
Develops precise statements about performance, supported by appropriate mathematical models and empirical studies validating those models.
Contents
Chapter 1: Fundamentals
Programming Model
Data Abstraction
Bags, Stacks, and Queues
Analysis of Algorithms
Case Study: Union-Find
Chapter 2: Sorting
Elementary Sorts
Mergesort
Quicksort
Priority Queues
Applications
Chapter 3: Searching
Symbol Tables
Binary Search Trees
Balanced Search Trees
Hash Tables
Applications
Chapter 4: Graphs
Undirected Graphs
Directed Graphs
Minimum Spanning Trees
Shortest Paths
Chapter 5: Strings
String Sorts
Tries
Substring Search
Regular Expressions
Data Compression
Chapter 6: Context
- File Size: 22992 KB
- Print Length: 992 pages
- Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
- Publisher: Addison-Wesley Professional; 4 edition (February 21, 2011)
- Sold by: Amazon Digital Services, Inc.
- Language: English
- ASIN: B004P8J1NA
- Text-to-Speech: Enabled
X-Ray:
- Lending: Not Enabled
- Amazon Best Sellers Rank: #31,226 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
- #1
in Kindle Store > Kindle eBooks > Computers & Technology > Systems Analysis & Design - #4
in Books > Computers & Technology > Computer Science > Systems Analysis & Design - #5
in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Structured Design
- #1
in Kindle Store > Kindle eBooks > Computers & Technology > Systems Analysis & Design - #4
in Books > Computers & Technology > Computer Science > Systems Analysis & Design - #5
in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Structured Design
"Algorithms" (4th edn) by Robert Sedgewick and Kevin Wayne (published
by Addison-Wesley in March 2011) is one of the best computer science
books I have ever read. It should be required reading for all CS
students and all programmers - it aims to cover the "50 algorithms
every programmer should know". Below I discuss some of the main
reasons why I think the book is so good.
Unlike its main rival, "An introduction to algorithms" by Cormen,
Leiserson, Rivest and Stein (CLRS), "Algorithms" contains actual
source code (written in a subset of Java). The importance of this
cannot be overstated: it means students can actually use the
algorithms to solve real problems. This enables a wealth of
interesting and motivating applications --- from web search to
genomics --- which are sprinkled throughout the book. (Source code and
data are available on the book's website.)
A natural worry with real code is that it will obscure the basic
ideas. However, by careful useful of abstract data types (classes
such as queues, bags, hash tables, trees, DAGs, etc), the authors have
done a masterful job at creating extremely concise and readable
implementations.
Using real code also forces one to address important implementation
details that are easy to overlook. For example, it is well known that
mergesort requires auxiliary memory. In the CLRS pseudocode, they
allocate temporary storage space inside their merge routine. In
practice it is much more efficient to allocate temporary storage space
once, and then pass this in as a pointer to the merge function (or let
it be a private member of the mergesort class). Where else can you
learn such important tricks?
Algorithms Preview
Link
Please Wait...