Подкиньте удобочитаемую статью, желательно с картинками, диаграммами, разъясняющую этот алгоритм. Англоязычную можно.
Википедию прочитал. Строгие формулировки и программы на псевдокоде лезут из ушей, а понимания, как не было, так и нет. Никак не могу вникнуть.
Может быть кто-нибудь реферат сам писал, тоже можно.
Линукс здесь нипричём.