I am currently preparing for the national high school competition in programming. Because the task are all about designing algorithms to solve problems, I would like to get some books that can teach me HOW to THINK when solving problems. I have a couple of books already, but they all, except for one, require math that is above my level( I'm 15, and they require university math). I need some books that DO NOT require too much math ( so no complex analysis of algorithms ), and discus some of the most popular problems and it's variations ( like Travelling salesman and knapsack problem). So, bottom line, do you have some recommendations for me?
Regards,
bl4ckb3rry
Just program stuff that requires algorithms, everything does to some extent. You can start with encryption, that's easy enough. You can then try for some compression algorithms, but mathmatics will probably be needed in nearly every case because that's kind of how complex algorithms work.
Practice will do more for you than reading, and if you need to get some documentation the internet is full of information on anything you'd need. Just warm up the old google and type away.
1) You have a problem a
2) break that problem down into as many sub problems as you can
3) for each sub problem, apply the problem solving algorithm
With a bit of practice you should end up with small solvable problems. (this is also called top-down principle).
Other than that - just program a lot. And pick up math skills as you go. Especially the basics of math - higher maths isn't that hard to get, the thing that most people fuck up is understanding the very basics.