It's not really a matter of memorization. It's a matter of deeply understanding a general classes of algorithms like divide and conquer. If you really understand divide and conquer, then you don't need to memorize quick-sortquicksort. You can re-derive it on the spot as needed. Furthermore, the real payoff isn't even in being able to re-derive quck-sortquicksort on your own, it's that you can recognize when a new problem is amenable to a divide and conquer solution.
Not all programming jobs are the same. Some jobs need a profound knowledge of algorithms, some need folks who understand type theory, and some just need folks that can scrape data from a web form and move it to a database. Some jobs even need all those skill at once. What kind of job do you want to work at?