Clrs is too good for me. i find it difficult to understand from it. could you suggest a book which is easy to understand from for a beginner in algo and data structures
Are there any good books by indian authors? If you know any online references/courses please mention them also?
Hello again @imcode,
I think I finally understood your problem. After checking your profile that is.
You have only two submissions made on system on two easy practice problems!!!
If you want to really improve, well, you have done one good thing which is register here on these boards. That is good and if you take advantage of this amazing community you will grow a lot as a coder, trust me. But you need to do a lot more!
Books are, of course, an excellent resource to learn about, literally, ANY subject. But, it turns out that programming (and more specifically, competitive programming) is NOT “by the book”. That is, only be reading books or even taking programming classes at university, you can, undoubtedly strengthen your theoretical background and that can help you on the hard task that is “coming up” with the right idea or algorithm only by reading statement and looking at constrains.
Then there is the second part: implementation part, which is the part where you proceed to translate the algorithm you “wrote” in your head, into code that can compile successfully. This second part usually is more technical than the first part and it’s sometimes where some people get stuck.
However, the way I see it, in the beginning, these two stages are often entwined, which means that doing one helps in the other and vice-versa. This is true because on the beginning, the problems you will possibly struggle to solve are very easy in nature and you can actually code and develop simple algorithm to solve it.
As such, I leave you with this link from the book: “How to think like a computer Scientist: C++ version” written by Allen Downey.
That book is the basics of the basics and can actually help you in gaining motivation and joy in learning new algorithms.
Also, on a sidenote, it’s a bit frustrating that you never reply to any of the answers given to your questions… That way we can’t be sure if we are helping you out or not… Just reply saying thank you and getting more engaged in the community, it’s also a great way to learn And please, read FAQ and start submitting solutions
These are some great books -
Fundamentals of Computer Algorithms, E. Horowitz, S. Sahni, S. Rajasekaran. ( Implementable pseudo codes )
Algorithms, ROBERT SEDGEWICK.
Programming Challenges, Steven S. Skiena, Miguel A. Revilla.
Mathematics for Computer Science Eric Lehman and Tom Leighton 2004.
Addison Wesley - Knuth - Concrete Mathematics. ( Good coders on SPOJ follow this. )
Addison Wesley Donald E. Knuth The Art of Computer Programming.
Also search Quora for some great tips & tricks. I’d also suggest following topcoder & codechef tutorials.
Reading & Understanding CLRS takes a lot of patience, but you’ll get better at it with time.
Hope it helps. Code on!
Okay, you can’t let a statement scare you due to its introduction… The problem statement might be a bit too “polished” and even a bit long, but the essence of that problem is very, very simpler than TSP as you seem to think…
In the end of statement there says:
The programmers understood they had no
chance to solve the problem. But
because they have already received the
research grant from the government,
they needed to continue with their
studies and produce at least some
results. So they started to study
behavior of the factorial function.
For example, they defined the function
Z. For any positive integer N, Z(N) is
the number of zeros at the end of the
decimal form of number N!. They
noticed that this function never
decreases. If we have two numbers
N1 < N2, then Z(N1) <= Z(N2). It is
because we can never “lose” any
trailing zero by multiplying by any
positive number. We can only get new
and new zeros. The function Z is very
interesting, so we need a computer
program that can determine its value
So, as you can see, all you need to do on that program is to write a code which after receiving as input a number N, returns as output the number of digits 0 at the end of N! (factorial of N), which can be found by simple math…
As u wrote something about courses and books for data stru and algos:
The best way to learn is from IIT’s official portal:
And the Indian Book author “Fundamentals of Computer Algorithms by Sartaj Sahani” is a good option…
If you are interested in learning algorithms and practise coding them then check out this course by Stanford. Also keep codeing regularly because it is a better teacher than anything else.