title: Kruskal's algorithm explanation
body: <p>I was reading wikipeida and found Kruskal's Pseudocode as the following:</p>
  
  <pre><code>KRUSKAL(G):    
      foreach v ∈ G.V:    
          MAKE_SET(v)    
      G.E = sort(G.E)    
      i = 0    
      while (i != |V|-1):      
          pick the next (u, v) edge from sorted list of edges G.E        
          if (FIND_SET(u) != FIND_SET(v)):          
              UNION(u, v)        
              i = i + 1 
  </code></pre>
  
  <p>I'm not quiet sure what <code>FIND_SET()</code> does, and Wikipedia has the follow description:</p>
  
  <blockquote>
    <p>if that edge connects two different trees, then add it to the forest, combining two trees into a single tree.</p>
  </blockquote>
  
  <p>So I guess it checks if two different trees are connected, but what does this really mean?</p>