If I have a question about the algorithm that I can't understand the logic behind, how and where should I ask the question?
As stated in the Help Center, one of the rules stated on the What topics can I ask about here? page is:
Am I an author or maintainer of the code?
For licensing, moral, and procedural reasons, we cannot review code written by other programmers. We expect you, as the author, to understand why the code is written the way that it is.
If you don't understand the code, then we would treat it as if you didn't write it yourself, and the question would be off-topic for Code Review. Computer Science Stack Exchange does allow questions on algorithms, so your question is likely to be appropriate there. On the other hand, if you have a language-specific question about why a line of code behaves the way it does, rather than the principles behind the algorithm, Stack Overflow might be a better place to ask.
Code Review, and Stack Overflow are not good places for general broad-minded discussions about algorithms.
Software Engineering is also not a good place for poorly constructed open ended discussions. I believe Computer Science is a good option. Please read their help center pages before asking.