Background: I'm a computer science major, but who has done a lot of math (real analysis, linear/abstract algebra, combinatorics, probab&stats, numerical analysis, linear programming) and currently doing undergraduate research in computational algebra/geometry. I'm taking a graduate level algebraic geometry class this fall. I'm also continuing my research in computational algebra/geometry. I will be applying to computer science graduate school with a focus on algorithms. Now, say I have to pick between complex analysis and topology, what should I take? Which will be more helpful to me? Which is more fundamental to mathematics and computer science in general (i know they are both very fundamental, but which is MORE so)? Thanks.