한 버텍스를 기준으로 가능한한 작은 가중치의 아크들을 사용해서 모든 버텍스를 연결하는 트리를 만드는 겁니다. 즉, 최소의 아크 값만 사용해서 모든 버텍스를 연결하는 것을 의미한다.
그래프 G 의 spanning tree 중 edge weight 의 합이 최소인 spanning tree
를 말한다.
spanning tree
란 그래프 G 의 모든 vertex 가 cycle 이 없이 연결된 형태를 말한다.
따라서 Spanning Tree는 그래프에 있는 n개의 정점을 정확히 (n-1)개의 간선으로 연결 한다.
최소 신장 트리가 최단 경로는 아니다.
크루스칼 알고리즘과 프림 알고리즘을 알기 위해선 유니온 파인드 알고리즘을 알아야 한다.
정점 기반 알고리즘 - 정점이 많고, 간선이 촘촘한 밀집 그래프(Dense Graph)에서 더 적합합니다.
Time Complexity
배열을 사용하면O(V^2), 이진 힙을 사용하면O(ElgV), 피보나치 힙을 사용하면**O(E+VlgV)**의 시간 복잡도를 가집니다.
간선 기반 알고리즘 - 간선이 적고, 그래프가 연결될 가능성이 큰 희소 그래프(Sparse Graph)에서 유리합니다.
모든 간선들의 가중치를 오름차순으로 정렬한다.
가중치가 가장 작은 간선을 선택한다.