Если ты не поймёшь, что делается, ты уверен, что разобрался с синтаксисом? Про "зачем" - это какая-то довольно убогая реализация, открой хоть бы даже и Вики, почитай описание алгоритма и уж потом реализацию там
Кстати, прочитать описание алгоритма, попытаться его реализовать, а потом читать чужой код - вполне себе нормальный вариант