The algorithms you mention are pretty basic. I doubt there will be many puzzles out there that will require you to write a merge sort specifically. Most puzzles these days rely on you knowing how to use your programming language of choice to sort a list or to look up an object in a hash table. The skills they test are more abstract.
If that's not a problem for you, I recommend the following sites:
If you're mathematically inclined, you might also want to check out Project Euler. The first bunch of problems are solvable through brute force or dynamic programming, but after a while you will need to use some hardcode maths, so I don't recommend it for programming puzzles as much as the other sites.