- calculates shortest path from $s$ to every other vertex - assumes no negative edges - runtime is $O((|V| + |E|)\,log(|V|))$