Typical programmers don't remember these things because they're rarely relevant for typical enterprise software development*. If they're specifically important to what you're doing it may make sense to ask about them, but I don't think these kind of questions should be used just as some generalized "programming intelligence test".
* DB normalization is more likely to be relevant than algorithms, but often the database already exists.
[algorithms are] rarely relevant for typical enterprise software development
I'm not so certain about that. I've seen a number of cases where people working on classic 'enterprise' systems struggled for a long time trying to solve problems that could have been neatly resolved using something that is considered 'theory' (like a dynamic programming solution, Lamport's vector clocks, or A* search) and after much trial and error ended up coming up with a ad hoc approach that mostly didn't blow up. If it's purely a web frontend to a database, sure, there isn'...
This is the sixth bimonthly 'What are you working On?' thread. Previous threads are here. So here's the question:
What are you working on?
Here are some guidelines: