# Prerequisite mathematics for studying data structures and algorithms

Forgive me if this seems trivial to you. But, I do need your advice.

I am self-studying computer programming, now want to study Algorithms and Data Structures. All respected texts in A&DS talk in mathematical terms. I have not studied mathematics at higher levels. So I find it difficult to follow.

Please suggest me books / resources wherein I can self-study the prerequisite mathematical knowledge.

Regards, Pranav

-

Not terribly much believe it or not. Algorithms and data structures is a very broad field. Obviously if you want to delve into some kinds of algorithms in particular, you need to know much more math. Generally though, for a good basic grasp of algorithms, you mostly need good problem solving abilities and a broad exposure (not necessarily too deep) to various kinds of mathematics. Number theory definitely is helpful as is some basic graph theory. If you really want to be able to analyze algorithms, you'll also need a fairly solid grasp of Big O notation.

This book is great for getting exposed to many various branches of math through problem solving:

http://www.amazon.com/Problem-Solving-Through-Recreational-Mathematics/dp/0486409171/ref=sr_1_1?ie=UTF8&qid=1348032214&sr=8-1&keywords=problem+solving+through+recreational+mathematics

Most algorithm books should at least gloss over Big O notation.

If you're interested in going deeper, you can use Knuth's Concrete Mathematics.

-

Knuth's The Art of Computer Programming (TAOCP) is the essential series covering mathematics for programmers. The only prerequisite for reading the first book are, in Knuth's words:

the reader should have already written and tested at least, say, four programs

All other mathematical notation is described in detail as it is introduced.

Read and obey the Procedure for Reading This Set of Books in order not to get discouraged. Do some exercises. They are designed for self-study. As Knuth says:

It is difficult, if not impossible, for anyone to learn a subject purely by reading about it

-
Four programs in assembly language is what he meant. I tried reading it before I had taken a course on assembly programming and understood very little. Even so, this book doesn't have many requisites in terms of knowledge but has massive requisites in terms of kskill and mathematical maturity. – user230452 Apr 19 at 17:13