Beginning Algorithms

( 1 )

Overview

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 ...

See more details below
Paperback
$28.23
BN.com price
(Save 29%)$39.99 List Price

Pick Up In Store

Reserve and pick up in 60 minutes at your local store

Other sellers (Paperback)
  • All (7) from $16.27   
  • New (4) from $21.53   
  • Used (3) from $16.27   
Sending request ...

Overview

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.

Read More Show Less

Product Details

  • ISBN-13: 9780764596742
  • Publisher: Wiley
  • Publication date: 10/5/2005
  • Series: Wrox Beginning Guides
  • Edition number: 1
  • Pages: 600
  • Sales rank: 974,839
  • Product dimensions: 7.44 (w) x 9.16 (h) x 1.28 (d)

Meet 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.

Read More Show Less

Table of Contents

Acknowledgments.

Introduction.

Chapter 1: Getting Started.

Chapter 2: Iteration and Recursion.

Chapter 3: Lists.

Chapter 4: Queues.

Chapter 5: Stacks.

Chapter 6: Basic Sorting.

Chapter 7: Advanced Sorting.

Chapter 8: Priority Queues.

Chapter 9: Binary Searching and Insertion.

Chapter 10: Binary Search Trees.

Chapter 11: Hashing.

Chapter 12: Sets.

Chapter 13: Maps.

Chapter 14: Ternary Search Trees.

Chapter 15: B-Trees.

Chapter 16: String Searching.

Chapter 17: String Matching.

Chapter 18: Computational Geometry.

Chapter 19: Pragmatic Optimization.

Appendix A: Further Reading.

Appendix B: Resources.

Appendix C: Bibliography.

Appendix D: Answers to Exercises.

Index.

Read More Show Less

Customer Reviews

Average Rating 5
( 1 )
Rating Distribution

5 Star

(1)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Anonymous

    Posted November 12, 2005

    the examples are in Java

    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. Of course, 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. The text covers the most common structures and methods for using those structures, that you are likely to need. Lists, stacks, iteration, recursion, queues, sorting, searching, hashing etc. Some of these subjects have immense depth. For example, sorting and searching takes up one volume of Knuth's 'Art of Computer Programming'. But that is a very advanced text, and ill suited to someone new to the basic algorithms. Harris and Ross give you enough complexity to be challenging and understandable. While perhaps giving some indications as to more intricate underlying issues. As alluded to above, if you proceed through the text, several important Java classes are used. Vector, List, Hashtable, HashSet and others. You would be well advised to gain fluency in these, as the book shows how they form the basis of much computational work. You also get an appreciation for the beauty of Java, inasmuch as it comes with those classes. While you could certainly write these from scratch, not having to do so is a huge timesaver. And by using the system classes, you are assured of very stable, highly debugged classes.

    1 out of 1 people found this review helpful.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)