# A good book for Algorithms



## @vi (Sep 26, 2012)

I need a good book for algorithms. I already have Thomas Cormen's book, however I feel it's bit tough for beginner like me.

So any good book which explains more lucidly ? 
-should have more exercises
-more coverage on space/time complexities and asymptotic notations 
-recurrence relations 

Concepts like Divide & Conquer, Greedy etc covered well in Thomas' book. But above topics are not well covered.  

So anyone here can suggest me a good book ?? 

Thank you


----------



## digit.sh (Sep 26, 2012)

@vi said:


> I need a good book for algorithms. I already have Thomas Cormen's book, however I feel it's bit tough for beginner like me.
> 
> So any good book which explains more lucidly ?
> -should have more exercises
> ...



More exercises? Are you confident you would be able to solve all of CLRS's problems?

For Space/Time complexities, thorough understanding of Automata(FSA and especially TM) is a must. And for that, the legendary book "Introduction to Automata Theory Languages and Computation" by Hopcroft, Motwani and Ullman is the best. The last four chapters(TM, Undecidability, Intractibility, Additional Classes of problems) would be what you are looking for.
Also, there is the book by Michael Sipser. This one is written in a less formal style and I do not like that very much.

CLRS covers enough of asymtotic notations.

You may also look into the other great Algorithm book by Jon Kleinberg and Eva Tardos. I did not get my hand on it yet, so I can't comment. And I do not think it would be easier than CLRS to grasp. Among Indian authors, "Fundamentals of Computer Algorithms by Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran" is good. I would say, stick to CLRS for the topics it covers and read other book for those it doesn't. CLRS is the best. Its the most lucidly written algorithm book ever.

All the best and have an exciting journey in Theortical Computer Science.


----------



## @vi (Sep 28, 2012)

Thank you very much for replying !



digit.sh said:


> More exercises? Are you confident you would be able to solve all of CLRS's problems?


Nope, I didn't mean like that  however CLRS has less exercises in the topics I mentioned.



digit.sh said:


> For Space/Time complexities, thorough understanding of Automata(FSA and especially TM) is a must. And for that, the legendary book "Introduction to Automata Theory Languages and Computation" by Hopcroft, Motwani and Ullman is the best. The last four chapters(TM, Undecidability, Intractibility, Additional Classes of problems) would be what you are looking for.
> Also, there is the book by Michael Sipser. This one is written in a less formal style and I do not like that very much.


Wow, I never thought there is an connection between S/T Complexities with Automata Theory :-/ I have both books, one by Sipser and also by Hopcroft. I also have a book by Peter Linz which I like it more. I feel Hopcroft bit complicated compared to Linz / Sipser.

I am doing Regular Expressions currently and it would take time for me till TM/Undecidability. 

But again, I never thought these are connected :-/ Means my approach studying these wasn't correct may be.



digit.sh said:


> You may also look into the other great Algorithm book by Jon Kleinberg and Eva Tardos. I did not get my hand on it yet, so I can't comment. And I do not think it would be easier than CLRS to grasp. Among Indian authors, "Fundamentals of Computer Algorithms by Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran" is good. I would say, stick to CLRS for the topics it covers and read other book for those it doesn't. CLRS is the best. Its the most lucidly written algorithm book ever.


Got PDF of JK and ET, yet to check it though. Friend has Sahni, will see it today. 

Well, CLRS is best but I felt it has less exercises in the topics I mentioned. In rest all topics it is well explained lucidly.



digit.sh said:


> All the best and have an exciting journey in Theortical Computer Science.


Thank you  Theory of Comp. Science is a lot interesting. I am thinking to pursue higher studies in TOC/FAFL, any pointers you can add ? Any suggestions ? 

Thanks again


----------



## mitraark (Sep 29, 2012)

Data Structures and Algorithms Made Easy: 700 Data Structure and Algorithmic Puzzles by Mr Narasimha Karumanchi


----------



## digit.sh (Sep 29, 2012)

> Wow, I never thought there is an connection between S/T Complexities with Automata Theory :-/ I have both books, one by Sipser and also by Hopcroft. I also have a book by Peter Linz which I like it more. I feel Hopcroft bit complicated compared to Linz / Sipser.
> 
> I am doing Regular Expressions currently and it would take time for me till TM/Undecidability.
> 
> But again, I never thought these are connected :-/ Means my approach studying these wasn't correct may be.



They are connected. In fact FSA, PDA, TM are the basis of Complexity theory.



> Thank you Theory of Comp. Science is a lot interesting. I am thinking to pursue higher studies in TOC/FAFL, any pointers you can add ? Any suggestions ?



Suggestion:

1. Stop looking for "better books". Do not get carried away. Hopcroft,Ullman,Motwani and CLRS are all you need to have build a solid base. Those two are a must for a CS engineer. 

2. In parallel, study Maths. Specially Counting, Probability Theory, Graph Theory, Linear Algebra, Calculas and Abstract algebra(Set, Group, Ring, Field etc)

3. Remember, CS == Mathematics.


----------



## @vi (Sep 29, 2012)

mitraark said:


> Data Structures and Algorithms Made Easy: 700 Data Structure and Algorithmic Puzzles by Mr Narasimha Karumanchi


Have this book, I didn't liked it. It has a answer to concepts approach i.e. explains concepts via answers rather than making user think upon questions



digit.sh said:


> CS == Mathematics.


I realized this few months ago & my perspective towards CS has been entirely different since then. CS is a lot beautiful now  As a matter of fact, I started Discrete Mathematics [with Kenneth H. Rosen books + Arthur T Benjamin's lectures.]



digit.sh said:


> In fact FSA, PDA, TM are the basis of Complexity theory.


This I was understood. Almost every TOC book starts with Computability, Complexity & Automata Theory. But I just couldn't connect/relate to Time & Space complexities of Algorithms. So I guess I have to read lot careful now & think in all possibilities.   



digit.sh said:


> Suggestion:
> 
> 1. Stop looking for "better books". Do not get carried away. Hopcroft,Ullman,Motwani and CLRS are all you need to have build a solid base. Those two are a must for a CS engineer.
> 
> ...


Thanks for these suggestions  

1. Actually I don't go hunting books but whenever I am unable to comprehend concepts I look for same in other books. I am studying Peter Linz now, once I feel confident about subject, then go with Ullman. 

2. Yup, already doing it 

*EDIT :* Just observed you sig about Algo + FA link  Can you tell me more about TOC ? Also, are you a graduate / studying TOC ?


----------



## audiophilic (Sep 29, 2012)

What kind of algorithm do you want to implement? And on what level? There are so many out there to fill the whole world, so you need to be specific, and work towards it by drawing some flowcharts and pseudo codes. Also, a modular hierarchy can be handy sometimes to solve tougher problems


----------



## dashing.sujay (Sep 29, 2012)

TOC simply goes over my head. _Have_ a backlog in it


----------



## @vi (Sep 29, 2012)

audiophilic said:


> What kind of algorithm do you want to implement? And on what level? There are so many out there to fill the whole world, so you need to be specific, and work towards it by drawing some flowcharts and pseudo codes. Also, a modular hierarchy can be handy sometimes to solve tougher problems


Just want to learn basics. Complexities & Design strategies 



dashing.sujay said:


> TOC simply goes over my head. _Have_ a backlog in it


Well, book by Peter Linz is very lucid. See video lectures of Shai Simonson. Even video lectures by Kamala Keerthivasan at NPTEL is also good


----------



## dashing.sujay (Sep 29, 2012)

^Is that the same lady lecturer (who is of IIT-mad, I guess) ?


----------



## @vi (Sep 29, 2012)

Yes  

NPTEL :: Computer Science and Engineering - Theory of Automata, Formal Languages and Computation


----------



## dashing.sujay (Sep 29, 2012)

Sorry to say but I already have that and found it too boring.


----------



## @vi (Sep 29, 2012)

I agree  

Try Shai Simonson's lectures


----------



## dashing.sujay (Sep 29, 2012)

@vi said:


> I agree
> 
> Try Shai Simonson's lectures



Thanks, will give it a try .


----------



## sanny16 (Sep 29, 2012)

Introduction to the Design and Analysis of Algorithms Anany Levitin


----------



## digit.sh (Sep 29, 2012)

> EDIT : Just observed you sig about Algo + FA link Can you tell me more about TOC ? Also, are you a graduate / studying TOC ?



Only good Vid lecture I know is of Shai Simonson's. Avoid Kamala Keertivasan's.
I am in B.Tech 4th year.


----------



## @vi (Sep 29, 2012)

dashing.sujay said:


> Thanks, will give it a try .


Also join Coursera. Their courses are really good, interactive & never boring. Not sure they have TOC.



sanny16 said:


> Introduction to the Design and Analysis of Algorithms Anany Levitin


Thank you ! Will check that out 



digit.sh said:


> Only good Vid lecture I know is of Shai Simonson's. Avoid Kamala Keertivasan's.
> I am in B.Tech 4th year.


Oh, is it ? may I know why ? A lot of people suggested me. I mean a lot


----------



## digit.sh (Sep 30, 2012)

@vi said:


> Oh, is it ? may I know why ? A lot of people suggested me. I mean a lot



Because, she presents such an interesting subject in soo boring and uninteresting manner. You don't get the charm. Also, she has heavy south Indian accentP) which I don't like and sometimes can't even comprehend. But I did not spend enough time to see whether she is mathematically precise or not.


----------



## @vi (Sep 30, 2012)

digit.sh said:


> Because, she presents such an interesting subject in soo boring and uninteresting manner. You don't get the charm. Also, she has heavy south Indian accentP) which I don't like and sometimes can't even comprehend. But I did not spend enough time to see whether she is mathematically precise or not.


Agreed  

But aren't most of NPTEL / IIT lectures are boring ? There is this video lectures of P K Biswas on OS. That guy is super slow & will bore anyone to death  But once you start getting the subject, it will become a lot more interesting to watch. I took almost 2 weeks to complete the first 2 lectures, but later I finished the entire course a lot quickly


----------



## prabhu.wali (Oct 19, 2012)

i suggest u take a look at Algorithms course at Coursera,here *www.coursera.org/course/algo


----------



## @vi (Dec 11, 2012)

how did I miss this :-/

*class.coursera.org/automata/class/index


----------



## crazylamhe (Dec 23, 2012)

Not trying to jump the thread, I just need to clarify something, as I found this thread to be relevant to my doubts .. I have CLRS and also the Automata Books mentioned. However, unlike OP, I'm not interested in pursuing higher studies in TOC/FAFL. I just want to know the practical implementation of algorithms, enough to crack programming interviews; but then they also dig somewhat deeper. So, do I need to go in so much deeper as learning discrete maths, ring theory etc(you see it is as far as you go) ??
Or should I delve more into puzzles and stuff knowing just the basics ... but then how do I define the basics ?
Sorry again, i have no intention to jump the thread.


----------



## aman@odigma.com (Jan 2, 2013)

Data Structures and Algorithms Made Easy: 700 Data Structure and Algorithmic Puzzles by Mr Narasimha Karumanchi


----------



## @vi (Jan 2, 2013)

^nah, I wouldn't suggest that book.


----------



## MetalheadGautham (Jan 2, 2013)

A few links that can help in this thread:

Algorithm Tutorials

Tutorials | CodeChef

GeeksforGeeks


----------

