Source: https://dsacl3-2019.github.io/slides/dsa3_2019_11_minimum_spanning_trees.pdf