Union-Find 알고리즘 (동치류 문제) / 크루스칼 알고리즘 - C 언어
·
C
Union-Find 알고리즘: 정점으로 구성된 집합을 관리하는 방법으로 집합의 합병과 요소가 어떤 부분집합에 속하는가를 판정하는 두 가지 연산.find 연산으로 특정 원소들을 집합 안에 있는지 없는지 판별하고, 없다면 두 원소들이 속한 트리들을 합병한다.Union = 2개의 원소로 이루어진 집합을 합치는 연산. = 합집합Find = 특정 원소가 속한 집합을 찾아주는 연산.총 세 가지 방법이 있다. 첫번째 방법 : 부모 노드 활용Find 연산123456789101112131415//자기 자신을 가지는 노드로 초기화.void initgroup() {  for(i=0;in;i++){    parent[i] = i;  }} //x가 속한 트리의 루트 값 반환.int find(int x) {  while( x !..
신장 트리 / 최소 비용 신장 트리 / 프림 알고리즘, 크루스칼 알고리즘 - C 언어
·
C
트리는 사이클이 없는 연결 그래프그래프에 대한 설명글은 👇🏻https://tildacoderecorder.tistory.com/107 [ 자료 구조 ] 그래프의 개념과 구조그래프 : 연결되어 있는 원소 사이의 다:다 관계를 표현하는 자료구조 ( 트리는 1:N 관계 표현 ) 그래프 G = 객체를 나타내는 정점(Vertex)과 객체를 연결하는 간선(Edge)의 집합. G = (V, E) 그래프의 종tildacoderecorder.tistory.com 신장 트리: n개의 정점으로 이루어진 무방향 그래프G에서 n개의 모든 정점과 n-1개의 간선으로 만들어진 트리깊이 우선 신장 트리 : 깊이 우선 탐색을 이용해 생성된 신장 트리너비 우선 신장 트리 : 너비 우선 탐색을 이용해 생성된 신장 트리 최소 비용 신장..