why is discrete maths needed to understand algorithms?
There are several angles to this question.

First, most algorithms work on discrete abstractions like graphs, trees, matrices, sequences. To understand what the algorithm does, you need some acquaintance with those. They are staple of discrete mathematics. To prove the algorithm works as claimed relies on said properties, and the proof is essentially doing discrete mathematics. 

Second, to use algorithms successfully, you need to know how to map your real work problem to the above abstractions, that again means knowing their particularities.

Third, you usually will want to derive performance numbers, either to verify the algorithm works within given constraints (time, space), or to compare alternative approaches and evaluate tradeoffs. Again, a job for discrete mathematics.

Sure, you certainly can do a lot without going deeply into discrete mathematics (at least not openly), but it is a valuable toolbox.