I wish to know and learn most of the algorithms used in contests in codechef to optimize and reduce time of my codes

Its more about real time thinking its not always u have an algo written for all question in book…

Try to practise problems from codechef by thinking your own way out and then try to understand solution of expert programmers tricks they used to reduce time in that way you can learn in a million ways to arrive at a particular solution in a more efficient manner.

it’s depend on you, that what are you thinking about problem.

and if your are getting solution of problem, than it’s your algorithm for problem. (Y)

From competitive programmer’s perspective.

1.)Read the following books: Algorithms by Sedgewick, Introduction to Algorithms by Cormen.

2.)Read the topcoder.com TopCoder Algorithm Tutorials .

3.)Read all codechef long/short contest editorials.

4.) Try to solve problems from a variety of different sources so you can learn to apply as many different kinds of algorithms as possible.

5.) This link will surely help you:: http://e-maxx.ru/algo/