Shop Viral Protein Snacks Now
Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows.
$27.60 with 31 percent savings
List Price: $39.99
Get Fast, Free Shipping with Amazon Prime
FREE delivery Tuesday, August 25 on orders shipped by Amazon over $35
Or Prime members get FREE delivery Saturday, August 22. Order within 12 hrs 8 mins. Join Prime
Only 4 left in stock - order soon.
$$27.60 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$27.60
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Shipper / Seller
Amazon.com
Amazon.com
Shipper / Seller
Amazon.com
Returns
FREE 30-day refund/replacement
FREE 30-day refund/replacement
Quick refund
Usually issued within 24 hours. See exceptions
FREE return
At least one free return option available.
Convenient dropoff
At any of our 50,000 US locations.
See return policy
Gift options
Available at checkout
Available at checkout This item is a gift. Change
At checkout, you can add a custom message, a gift receipt for easy returns and have the item gift-wrapped
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Added to

Sorry, there was a problem.

There was an error retrieving your Wish Lists. Please try again.

Sorry, there was a problem.

List unavailable.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

  • Think Data Structures: Algorithms and Information Retrieval in Java

Follow the authors

Get new release updates & improved recommendations
See all
Something went wrong. Please try your request again later.

Think Data Structures: Algorithms and Information Retrieval in Java

4.5 out of 5 stars (56)

{"desktop_buybox_group_1":[{"displayPrice":"$27.60","priceAmount":27.60,"currencySymbol":"$","integerValue":"27","decimalSeparator":".","fractionalValue":"60","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"y3in1U1IJbZs6nZnyelZUorX2C9mRGBhZAkPXYO%2FApUE%2BzwwUSEdyK5Y8yQteOQrKZyVERcu1Hrq7aw3rWhCOSB0GTZ9c6NkwewglPupDWVEHMlPfBAG%2F3YTImmdVg4eWw6sGw9%2B%2B6DnxXFlJsepdA%3D%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}]}

Purchase options and add-ons

If you’re a student studying computer science or a software developer preparing for technical interviews, this practical book will help you learn and review some of the most important ideas in software engineering—data structures and algorithms—in a way that’s clearer, more concise, and more engaging than other materials.

By emphasizing practical knowledge and skills over theory, author Allen Downey shows you how to use data structures to implement efficient algorithms, and then analyze and measure their performance. You’ll explore the important classes in the Java collections framework (JCF), how they’re implemented, and how they’re expected to perform. Each chapter presents hands-on exercises supported by test code online.

  • Use data structures such as lists and maps, and understand how they work
  • Build an application that reads Wikipedia pages, parses the contents, and navigates the resulting data tree
  • Analyze code to predict how fast it will run and how much memory it will require
  • Write classes that implement the Map interface, using a hash table and binary search tree
  • Build a simple web search engine with a crawler, an indexer that stores web page contents, and a retriever that returns user query results

Other books by Allen Downey include Think Java, Think Python, Think Stats, and Think Bayes.

Read poolside to seaside.Shop kindle Paperwhite. pantry

Frequently bought together

This item: Think Data Structures: Algorithms and Information Retrieval in Java
$27.60
Get it as soon as Tuesday, Aug 25
Only 4 left in stock - order soon.
Ships from and sold by Amazon.com.
+
$24.61
Get it as soon as Tuesday, Aug 25
Only 14 left in stock (more on the way).
Ships from and sold by Amazon.com.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
One of these items ships sooner than the other.
Choose items to buy together.

Customers also bought or read

Loading...

From the brand


From the Publisher

The Philosophy Behind the Book

Data structures and algorithms are among the most important inventions of the last 50 years, and they are fundamental tools software engineers need to know. But in my opinion, most of the books on these topics are too theoretical, too big, and too 'bottom up'.

Too theoretical

Mathematical analysis of algorithms is based on simplifying assumptions that limit its usefulness in practice. Many presentations of this topic gloss over the simplifications and focus on the math. In this book I present the most practical subset of this material and omit or de-emphasize the rest.

Too big

Most books on these topics are at least 500 pages, and some are more than 1,000. By focusing on the topics I think are most useful for software engineers, I kept this book under 150 pages.

Too 'bottom up'

Many data structures books focus on how data structures work (the implementations), with less about how to use them (the interfaces). In this book, I go 'top down', starting with the interfaces. Readers learn to use the structures in the Java Collections Framework before getting into the details of how they work.

Finally, some books present this material out of context and without motivation: it’s just one damn data structure after another! I try to liven it up by organizing the topics around an application—web search—that uses data structures extensively, and is an interesting and important topic in its own right.

This application motivates some topics that are not usually covered in an introductory data structures class, including persistent data structures with Redis.

I have made difficult decisions about what to leave out, but I have made some compromises. I include a few topics that most readers will never use, but that they might be expected to know, possibly in a technical interview. For these topics, I present both the conventional wisdom as well as my reasons to be skeptical.

This book also presents basic aspects of software engineering practice, including version control and unit testing. Most chapters include an exercise that allows readers to apply what they have learned. Each exercise provides automated tests that check the solution. And for most exercises, I present my solution at the beginning of the next chapter.

Editorial Reviews

About the Author

Allen B. Downey is a Professor of Computer Science at Olin College of Engineering. He has taught at Wellesley College, Colby College, and U.C. Berkeley. He has a Ph.D. in Computer Science from U.C. Berkeley and Master’s and Bachelor’s degrees from MIT.

Product details

  • Publisher ‏ : ‎ O'Reilly Media
  • Publication date ‏ : ‎ August 22, 2017
  • Edition ‏ : ‎ 1st
  • Language ‏ : ‎ English
  • Print length ‏ : ‎ 158 pages
  • ISBN-10 ‏ : ‎ 1491972394
  • ISBN-13 ‏ : ‎ 978-1491972397
  • Item Weight ‏ : ‎ 9.6 ounces
  • Dimensions ‏ : ‎ 6.9 x 0.3 x 9 inches
  • Best Sellers Rank: #449,331 in Books (See Top 100 in Books)
  • Customer Reviews:
    4.5 out of 5 stars (56)

About the authors

Follow authors to get new release updates, plus improved recommendations.

Customer reviews

4.5 out of 5 stars
56 global ratings

Top reviews from the United States

  • 5 out of 5 stars
    Great book if you already know another programming language.
    Reviewed in the United States on May 25, 2019
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I have many years experience writing C code, and some C++, so I knew the basics of programming. This book has been great for me to dig into Java, not too basic, and not too complex. I'm using it as a self driven course in Java, especially learning more about collections.

    Although the book is not thick, as some have said, it is written straight to the point, with dense information on each page. And the exercises have been great to force myself into getting into the details of the language. I feel this book is worth a semester or two of an intermediate Java college course.

    5 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 5 out of 5 stars
    Harnassing the power of Java
    Reviewed in the United States on July 24, 2018
    Format: Paperback
    Vine Customer Review of Free Product
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Think Data Structures is a helpful guide in understanding and utilizing a wealth of data structures provided in the Java programming language.

    Though the book is a thin, lightweight volume, it is packed with helpful information and code that illustrates the power under the hood of the ubiquitous Java. Any serious student, or professional practitioner, of Java would benefit from a reading of this book. It highlights such storage essentials as linked lists, arrays, hash maps, as well as binary trees, list traversals and Big O Notation. The latter refers to a code’s efficiency measured by how many calculations and processor work is required for each method, function or class in a program. Understanding and implementing the most efficient code will help programmers not simply have code that works, but that also is lean and mean resource wise.

    I really enjoyed seeing not simply explanations of code but the code itself. Also, once a concept is explained it must be understood to make headway with the succeeding lessons. While I would recommend this book to anyone who wishes to learn how to write efficient, powerful Java code, it’s probably best suited for someone with at least a familiarity of Java, object oriented programming, and data structures (especially lists and hashes or maps).

    6 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 4 out of 5 stars
    Good coverage, but probably not for a novice
    Reviewed in the United States on November 8, 2017
    Format: Paperback
    Vine Customer Review of Free Product
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    As someone who has been coding for years (but is just now learning Java), I found this book to be pretty good.

    I like how it's clearly written for someone who is beyond the beginner level when it comes to coding (no slog through basic data types like so many other coding books I've read), and is looking for a more formal discussion of data structures.

    Writing is concise and clear, well-structured, and each section includes sample code and a basic exercise (not a lot of nuance here, though -- if you're looking for a bunch of exercises like what you'd find in a textbook, this isn't the book for you) to check your understanding. I think the author succeeds in his stated goal of covering a lot of material without getting too far into the weeds of theory, basic building blocks, etc.

    My one complaint is that it's a bit slim (physically, it's not even 200 pages). It covers a lot and does a surprisingly good job of bringing depth to the discussion, but if you were to have difficulty with something it'd be hard to get yourself unstuck with this book.

    6 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 5 out of 5 stars
    Clear, practical instruction in a slim book that’s not slim on usefulness
    Reviewed in the United States on October 15, 2017
    Format: Paperback
    Vine Customer Review of Free Product
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    In the preface, Downey states that he is trying to write a book that avoids the common pitfalls of being too theoretical, too big, and too “bottom up.” He has succeeded. In a way, Downey uses some of the structure of good storytelling in his instruction, which leads to more engagement and enjoyment. Rather than just a list of instructions, he builds up the reader’s knowledge by instructing on a specific “quest”, in this case, building a web search engine. This helps the reader’s mind follow along and build a base of knowledge. This knowledge can then be applied to other applications, as well. It’s a more natural way of learning, somewhat like being his apprentice.

    I’m impressed enough with what I learned and how enjoyable the learning was, that after writing this review, I’m going to take a look at what other books Downey has to offer.

    3 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 5 out of 5 stars
    Excellent terse Data Structures in Java book
    Reviewed in the United States on November 18, 2017
    Format: Paperback
    Vine Customer Review of Free Product
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Allen Downey writes wonderfully terse books that hit the important concepts, and this is another example. Sometimes I find Downey's books to be nice complements to more lengthy books that describe the concepts in more detail or more gradually/gently, and yet somehow manage to miss some important concepts. As mentioned in the introductory section, you should be comfortable in Java before taking on this book, including knowing how to define a new class that extends an existing class. This book would be good for CS students with the expected background as well as programmers generally more comfortable in another language and trying to get up to speed in Java.

    4 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 5 out of 5 stars
    I think that it does a good job of striking the balance it claims to
    Reviewed in the United States on September 25, 2017
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Solid book. I think that it does a good job of striking the balance it claims to.

    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 4 out of 5 stars
    Short And Straight To The Point
    Reviewed in the United States on November 5, 2017
    Format: Paperback
    Vine Customer Review of Free Product
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This is a more condensed, straight-to-the-point book for learning about different data structures and algorithms to use them. What this book won't give you is a lot of conceptual information behind each algorithm. Rather, it begins with a summary of the structure e.g. a hash, leads with example code and has an exercise at the end of each chapter using what you learn. So, the book's structure is: 'topic' + 'example' + 'output' + 'additional expounding' + 'exercise'. It is very good for getting to the 'meat', and learning how to use it.

    Personally, I really appreciate the way it is written. Clear language, straight to the point, and examples. This book shows you how to use and implement them immediately, which is the type I prefer to save time. Total pages are around 120, and topics are kept short.

    Know that you must know how to use Java in order to understand and use the examples and perform the exercises. Not necessarily complex Java or arcane packages, however you need to be able to create, compile and run Java code to include interfaces and classes.

    Some example chapters include: Interfaces, Arrays, LinkendList, TreeMap, Binary Search Trees, Web Crawling, jsoup usage, indexing, linear maps, and hash maps to name a few.

    Overall very clear book that gets straight to the point for data structures and simple algorithms in Java.

    4 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 3 out of 5 stars
    Good enough for refreshing the material
    Reviewed in the United States on June 29, 2020
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I have to admit I did not do the web crawler project as I was just interested in the concepts. A novice might find the exercises helpful, but I didn’t. A very sad decision made by the author was to focus a lot of the content on tools specific for the web crawling project. I enjoyed the first chapters and skimmed the last few ones.

    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

Top reviews from other countries

    Translated by Amazon
    See original
  • 4 out of 5 stars
    Good but every other paragraph , the author tells you to check a link/his website for further info
    Reviewed in the United Kingdom on July 10, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    I am half way through the book and I enjoy reading it . I got this book to get off the computer and read about Data structures. In the preface the author mentions how most Data structures books are about 500 pages and his is about 150 pages and that he was able to put everything within 150 pages but in fact every other paragraph, he gives you a link to his website for further reading so he didn't make a concise book , he just gives you links for the other 350 pages he removed.

    In the end I'll have to buy the 500 pages book because I don't want to check a link every paragraph , few lines even if I know some of it already ,I wanted to read the theory off the computer.

    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 5 out of 5 stars
    Five Stars
    Reviewed in India on July 2, 2018
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    very useful book :)

    Five Stars
    Five Stars
    5 out of 5 stars
    Five Stars
    Reviewed in India on July 2, 2018

    very useful book :)

    Sending feedback...
    Thanks, we'll investigate in the next few days.
  • 5 out of 5 stars
    Muito bom! Vale a pena
    Reviewed in Brazil on August 28, 2022
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Esse foi o livro que me inspirou a gostar do assunto e ver a importância em saber mais sobre ciência da computação e não simplesmente aprender uma linguagem e sair codificando da forma mais bonitinha que é mostrado nos exemplos para iniciantes.

    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Portuguese by Amazon
    See original