250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- spring
- 최소힙
- 자료구조
- SpringSecurity
- 프로세스
- 연결리스트 종류
- AVL트리
- 강화학습
- python
- JPA
- 엔티티 그래프
- 완전이진트리
- 백준 장학금
- JVM
- posix
- 알고리즘
- 운영체제
- 점근적 표기법
- HTTP
- 이분탐색이란
- MSA
- 백준장학금
- 연결리스트
- 멀티프로세서
- 최대 힙
- 스케줄링
- 힙트리
- jpa n+1 문제
- heapq
- Kruskal
Archives
- Today
- Total
KKanging
[자료구조] 최소 신장 트리(MST: Minimum Spanning Tree)란 본문

최소신장 트리(MST: Minimum Spanning Tree)란
- 그래프의 정점이 다 포함되어있는 트리( 신장 트리 (spanning tree))
- 가중치 그래프가 주어질 경우 간선들의 비용 합이 최소가 되는 신장 트리
- cycle이 발생하면 안됨


그래프란
→ 노드(정점 vertex)와 그 노드를 연결하는 간선을(edge) 하나로 모아놓은 자료구조
- 무방향 그래프: 간선이 방향이 없는 그래프
- 방향 크래프: 간선의 방향이 있는 그래프

그래프의 표현 방법
- 인접 행렬
- 인접 리스트
인접행렬

가중치 그래프란
- 그래프의 간선에 가중치(weight)를 부여한 것


트리란
→ 그래프의 한 종류
→ Cycle이 불가능 (그래프에서 사이클(Cycle)이란 어떤 특정 정점에서 출발하여 간선과 정점들을 지 나 다시 처음에 출발했던 특정 정점으로 되돌아오는 것을 말한다.)
→ 부모 - 자식 관계

cycle이란
- if vertex의 집합을 {v1,v2,v3,v4,v5,v6}가 있다면
- 특정 정점 vi에서 시작해서 다시 vi로 돌아오는 경로(path)가 있을 시
→ 그 경로를 cycle이라고 부른다.

- 이 그림에서 다양한 cycle이 있지만 한가지 예를 들어보면
- path : 0 → 4 → 2 → 1 → 0 이 있다.
cycle이 발생 확인 알고리즘(이 글에선 다루지 않음)
- DFS/BFS
- Union/find 기법
최소신장트리를 구성하는 알고리즘
- Prim 알고리즘
- Kruskal 알고리즘
- 위 알고리즘들은 가중치 그래프에서 최소신장트리를 구성하는 알고리즘이다.
- 2개는 대표적인 greedy알고리즘으로 다른 글에서 다루도록 하겠다.
'cs > 자료구조' 카테고리의 다른 글
[자료구조] AVL 트리란 (0) | 2023.08.06 |
---|---|
[자료구조]그래프란 (0) | 2023.07.27 |
[자료구조] 이진탐색트리의 개념과 구현(Java) (0) | 2023.07.24 |
[자료구조] 이진트리란 && 전위 중위 후위 순회 구현(Java) (0) | 2023.07.20 |
[자료구조] 힙트리의 정의 와 구현 (Java) (0) | 2023.07.15 |