# Algorithms - Data Structures Book

This topic is 1451 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I am looking for a book that explains in detail all the usefull-most used algorithms and data structures.

I would prefer if it had exercises in it along with the solutions.

My mathimatical backround is not bad but I am not an expert either.

So I would like the book explanations to not be so mathematically complex.

Be more like a begginner book with explanations as simple as possible. With some pictures in it too. :P

If instead of a book there is a good site I dont really mind using that instead of the book.

In terms of programming I just finished learning C. I will be testing these algorithms in C

Thanks.

##### Share on other sites

One of the most used books is "Introduction to Algorithms", by Cormen, Leiserson, Rivest and Stein http://en.wikipedia.org/wiki/Introduction_to_Algorithms

It was used in my ADS course too (as "recommended" English book, since the course was not in English), it comes with exercise.

Note also that most of algorithms and data structure books (especially introductory and intermediate level books) don't use a specific "real" language (like C/C++, Java, Python, etc.) but their own pseudo-code. This means the job of translating all into C (or any other programming language) is yours.

Edited by Alessio1989

##### Share on other sites
Data Structures and Algorithms for Game Developers

I don't have this book myself nor have I read it but most of the other Charles River Media books I have are fairly good.

##### Share on other sites

Algorithms, 4th Edition by Sedgewick and Wayne is a good choice. It's less dry than many other texts and more suitable for self-study. Additionally, it's used as the basis of a course taught by the authors at Princeton, available as two classes (Part I and Part II) online for free at Coursera.

##### Share on other sites
I agree with the recommendation for any of Sedgewick's many "Algorithms" books. The level of rigor is enough but not overwhelming.

##### Share on other sites

if the thought of reading 1000 page, highly descriptive book cant scare you then Algorithms, 4th Edition by Sedgewick and Wayne is the best bet. The subject of  data struct and algo. is quite academic in nature and one can find lots of content/video lectures etc over the internet for a quick start.

##### Share on other sites

Data Structures For Game Programmers by Ron Penton. PM me if you need the CD

##### Share on other sites

Coursera is aboout to restart its Algorithms 1 course on the 31st of Jan which will no doubt be followed by the Alogorithms 2 course.  Its free to sign up and has lots of excersises and assignments.  The book recommended for the course is Algorithms 4th Edition which was already recommended by nish_wk.

If you don't want to do the course work you can still follow along with the lectures.

https://www.coursera.org/course/algs4partI

##### Share on other sites

The book looks very good. I also like the idea of this online class.

The only problem is that the code is written in Java. I would have prefered if it was on pseudocode.

It's not that I have any problem learning Java. But I was aiming to start learning C++ now that I got C.

So in order to use this book I need to learn Java.

##### Share on other sites

Sedgewick has had many incarnations of his "Algorithms" book over the years, and any of them will do just fine. The particular language in which the code pieces are written is almost irrelevant.

My impression is that the C++ versions of the book are a horrible place to learn C++. You can see the code for Algorithms in C++, Parts 1-4 (Fundamental Algorithms, Data Structures, Sorting, Searching) here.  The code is really bad C++:

* It uses obsolete headers like <iostream.h>

* It declares all variables at the beginning of the function, instead of at the point where they are first used.

* It passes collections of things by pointer-to-first and size (in perfect C style) instead of using iterators.

* It uses macros in questionable ways

* It uses uninformative variable names (to the point that the code is almost unreadable without the accompanying chapter).

In short, it looks like he took the C version, replaced printf' with cout' and little else.

Edited by Álvaro