Yes, absolutely. Although in the extreme of complexity, comments actually stop helping. A straightforward implementation of, say, RSA or an FFT can actually be done in small, simple, well-organized code whose structure is "obvious" to someone who understands the problem. But no amount of comments is going to help the reader understand the algorithm to begin with. In those circumstances it's much better just to document what you're doing and let the reader go to their textbooks.