Click
here
to start
a breakdown of the algorithm