Johnson algoritmusa