Automotive Holiday Deals Up to 50% Off Select Books Shop Men's Athletic Shoes Learn more nav_sap_SWP_6M_fly_beacon Black Friday egg_2015 All-New Amazon Fire TV Grocery Gifts for Her Amazon Gift Card Offer cm15 cm15 cm15 $30 Off Amazon Echo $30 Off Fire HD 6 Kindle Cyber Monday Deals Indie for the Holidays in Prime Music Shop Now Tikes

Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your email address or mobile phone number.

Beginning Algorithms 1st Edition

13 customer reviews
ISBN-13: 978-0764596742
ISBN-10: 0764596748
Why is ISBN important?
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Have one to sell? Sell on Amazon
Buy used On clicking this link, a new layer will be open
$16.42 On clicking this link, a new layer will be open
Buy new On clicking this link, a new layer will be open
$31.24 On clicking this link, a new layer will be open
More Buying Choices
24 New from $14.51 24 Used from $0.74
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Get Up to 80% Back Rent Textbooks
$31.24 FREE Shipping on orders over $35. Only 7 left in stock (more on the way). Ships from and sold by Gift-wrap available.

Special Offers and Product Promotions

  • Take an Extra 30% Off Any Book: Use promo code HOLIDAY30 at checkout to get an extra 30% off any book for a limited time. Excludes Kindle eBooks and Audible Audiobooks. Restrictions apply. Learn more | Shop now

Editorial Reviews

From the Back Cover

Beginning Algorithms

A good understanding of algorithms, and the knowledge of when to apply them, is crucial to producing software that not only works correctly, but also performs efficiently. This is the only book to impart all this essential information—from the basics of algorithms, data structures, and performance characteristics to the specific algorithms used in development and programming tasks.

Packed with detailed explanations and instructive examples, the book begins by offering you some fundamental data structures and then goes on to explain various sorting algorithms. You'll then learn efficient practices for storing and searching by way of hashing, trees, sets, and maps. The authors also share tips on optimization techniques and ways to avoid common performance pitfalls. In the end, you'll be prepared to build the algorithms and data structures most commonly encountered in day-to-day software development.

What you will learn from this book

  • The basics of algorithms, such as iteration and recursion
  • Elementary data structures such as lists, stacks, and queues
  • Basic and advanced sorting algorithms including insertion sort, quicksort, and shell sort
  • Advanced data structures such as binary trees, ternary trees, and heaps
  • Algorithms for string searching, string matching, hashing, and computational geometry
  • How to use test-driven development techniques to ensure your code works as intended
  • How to dramatically improve the performance of your code with hands-on techniques for profiling and optimization

Who this book is for

This book is for anyone who develops applications, or is just beginning to do so, and is looking to understand algorithms and data structures. An understanding of computer programming is beneficial.

Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that will guide you through all the techniques involved.

About the Author

Simon Harris started writing animated sprites on a Commodore 64 in primary school. After a break of many years, he taught himself 80x86 and IBM System/370 assembler and started working professionally. Since then he has moved from assembler to C, C++, and, of course, Java. He believes a fundamental understanding and appreciation of algorithms is essential to developing good software; and since starting his own company, RedHill Consulting, he has managed to make a living discussing and demonstrating software development practices and techniques to anyone who will listen.

In his more than 15 years of development experience, James Ross has ranged from building packaged products to large enterprise systems to research into compilers and languages. In recent years, he has become a code quality fanatic and agile methods specialist, particularly with test-driven development. He works as a consultant for ThoughtWorks, the world’s leading agile software development company. He is currently leading the development of a large J2EE project in the insurance industry in Melbourne, Australia. He lives with his wife and family in Melbourne.


Hero Quick Promo
Holiday Deals in Kindle Books
Save up to 85% on more than 1,000 Kindle Books. These deals are valid until November 30, 2015. Learn more

Product Details

  • Paperback: 600 pages
  • Publisher: Wrox; 1 edition (November 7, 2005)
  • Language: English
  • ISBN-10: 0764596748
  • ISBN-13: 978-0764596742
  • Product Dimensions: 7.4 x 1.2 x 9.2 inches
  • Shipping Weight: 2 pounds (View shipping rates and policies)
  • Average Customer Review: 3.1 out of 5 stars  See all reviews (13 customer reviews)
  • Amazon Best Sellers Rank: #1,262,530 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

Most Helpful Customer Reviews

35 of 38 people found the following review helpful By W Boudville HALL OF FAMEVINE VOICE on November 12, 2005
Format: Paperback
Neither the front or back cover says this, so I will. The source code examples in this book are all written in Java. I suspect the book is being a little coy about this because the authors want to maximise the potential audience. Fair enough. Granted, the text mentions Java immediately inside, but you have to actually open a physical copy, to see this.

If you are already conversant in Java, that's great, because the book offers an indepth guide to several crucial classes. But what if you program in C++ or C#? In the Standard Template Library for C++ and in the default libraries for C#, you should be able to easily find the equivalent classes to those used in the text. Of course, you will then have to rewrite the examples that use those classes. Straightforward. None of the examples are long. And since this book is fundamentally about computations, and not about making a user interface, the syntax for using the system classes is roughly the same, across these languages. Also, some examples might use the object oriented property of extending a base class. As you can do this in C++ and C#, there is no problem here either. A problem might have arisen if the authors had used C++ with multiple inheritance, because Java and C# forbid this. But since they didn't, it's not an issue. As an OO language, Java is actually pretty minimal.

Another way of looking at the topic of your language is that if you don't use Java, you can potentially use the book to better effect. Because you can't simply copy the Java code, then you have to actually get an accurate understanding of what it is doing, before manually recoding.

The text covers the most common structures and methods for using those structures, that you are likely to need.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
15 of 15 people found the following review helpful By Thomas Duff HALL OF FAMETOP 1000 REVIEWERVINE VOICE on December 9, 2005
Format: Paperback
It's pretty easy these days to use a programming language and the high level of abstraction it can offer to avoid understanding certain programming fundamentals like lists, queues, and stacks. It's for sure that I've gotten away with it. But if you're just starting out in programming (or if you're trying to fill in some gaps), you might be interested in Beginning Algorithms by Simon Harris and James Ross. They do a nice job of making a complex subject approachable...

Contents: Getting Started; Iteration and Recursion; Lists; Queues; Stacks; Basic Sorting; Advanced Sorting; Priority Queues; Binary Searching and Insertion; Binary Search Trees; Hashing; Sets; Maps; Ternary Search Trees; B-Trees; String Searching; String Matching; Computational Geometry; Pragmatic Optimization; Further Reading; Resources; Bibliography; Answers to Exercises; Index

Harris and Ross take you through the basic programming algorithms using Java as the base language. Rather than just tell you "use this Java class to do a Hash", they explain the underlying concept and then have you build an implementation of that concept in code. After you've taken the time to write the methods and classes by hand, you'll end up with a pretty complete understanding of that algorithm in a way that just using provided classes can't offer. Another commendable point in this book is that they start off each algorithm coding exercise by building unit tests first. That way, you can be assured that the code you write does everything it's supposed to do, and further tweaks to improve the logic don't lead to the introduction of bugs. Very solid approach...

I will end up keeping this book around for a couple of purposes.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
15 of 18 people found the following review helpful By Scott A. Johnson on May 8, 2007
Format: Paperback
While the basic data structure and algorithm content is fine, the "marriage" of test driven development/JUnit and DS&A is completely unnecessary and, to my mind, seriously damages this book. There's nothing wrong with test driven development and there's nothing wrong with JUnit. But to suggest that it's necessary to force the two together (ad nauseum!) for every single structure is just false. Really, after the first one or two test cases the JUnit stuff gets really tired and it should be obvious to the reader how to continue on with it. This is much like introductory OOD texts trying to munge software engineering principles throughout. A better title for this text would be "A Test Drive Approach to Beginning Algorithms with Java and JUnit". There are those who agree with the Beck Test Driven Development, there are those who disagree. But a linked list is a linked list. At this level, the important material consists of the basic data structures, the algorithms which manipulate them, recursion and some sense of when to choose which structure/algorithm. This material, in my opinion, should be concentrated on without the unit testing - leave unit testing to a text covering general programming best practices. A much better choice for an intro to DS&A in Java is Robert Lafore's "Data Structures and Algorithms in Java".
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
5 of 5 people found the following review helpful By Riccardo Audano on January 23, 2007
Format: Paperback Verified Purchase
If you are a self-taught programmer who has never taken a class in data structures and algorithms, or has done so but not really got it, this book could be a good read. It presents in a gentle, very tutorial-like, example-driven fashion the basics of this field, Lists, Sets, Maps, Trees, Hashing, Sorting & Searching and a little material on more unusual topics like String searching and matching and computational geometry. This last part however does not maintain the very good standards of the first part of the book. The treatment is too superficial and vague and little mistakes and confusion starts to creep in. The main body of the book anyways is really well written and clear. As an bonus, the authors use a test driven approach to developing their Java code giving you a chance to appreciate this very useful practice of extreme programmming and agile methodologies. The code itself is crystal clear and shows the principles of good coding and refactoring (other pillars of extreme programming): short reusable functions, few local variables and meaningful names.

The end result is so good that the "how it works" sections who are meant to explain the code are almost always unnecessary.

So this book can also be useful in teaching you how to write in a clear and elegant style. Final words, if you are looking for something that will introduce you to mathematical analysis of algorithms and their efficiency look elsewhere as this title contains none of that.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews

Set up an Amazon Giveaway

Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more
Beginning Algorithms
This item: Beginning Algorithms
Price: $31.24
Ships from and sold by