Loading...
2022. 9. 29. 04:01

union find 알고리즘 최적화 -경로압축과 rank union-

1. 기본 union find 알고리즘의 문제점 기본적인 union find 알고리즘을 사용할 경우 union을 수행하면.. 예를 들어 최악의 경우 위와 같은 union이 형성될 수 있다. 1의 대표자를 찾을 때, 2번, 3번, 4번을 확인하고 나서야 5번을 확인하여 1의 대표자가 5이구나 라는 것을 알 수 있다 이렇게 구성되는 경우 노드의 개수가 v개이고 간선의 개수가 m개이면 최악의 경우 O(VM)이라는 비효율적인 알고리즘이 된다. 특히 모든 1,2,3,4,5의 루트 노드가 5번인데 굳이 하나씩 거슬러 올라가서 전부 확인해야하나? union 그래프가 위와 같이 구성된다면, 2,3,4의 루트 노드는 단 1번만 5를 검사하면 바로 알 수 있으므로 효율적이다. 2. 경로압축(path compression)..

2022. 9. 29. 02:29

그래프 이론 - 서로소집합(disjoint set) 기본개념1 -

1. 그래프 기본 개념 간단히 복습 크루스칼 알고리즘 >>> 그리디 알고리즘 위상 정렬 알고리즘 >>> 큐, 스택자료구조를 이용 ---------------------------------------------------------------- 그래프(graph)란 노드(node)와 노드 사이 연결된 간선(edge)의 정보를 가지고 있는 자료구조 알고리즘 문제를 풀 때, "서로 다른 개체(객체)가 연결되어있다"라고 한다면 그래프 알고리즘을 가장 먼저 떠올려야한다. 예를 들어 "여러개의 도시가 연결되어 있다"라고 한다면 그래프 알고리즘을 의심할 필요가 있다 ----------------------------------------------------------------- 그래프 자료구조 중 트리 자료구조..

2022. 9. 15. 11:38

트리 이론 기본편 -중위 순회의 특징 응용하기-

1. 이진 탐색 트리의 특징 이진 탐색 트리는 어떠한 경우에도 왼쪽 서브 트리의 루트 루트 > 오른쪽 서브트리 순서대로 순회를 하게 된다. 그렇다면 주어진 이진 트리의 노드를 중위순회한다면, 트리에 넣어야할 데이터의 순서가 주어지며 그러한 순서대로 데이터를 작은 값부터 넣으면 "왼쪽 서브 트리의 루트 2 > 3 > 4 > 5 > ..

2022. 9. 13. 06:46

트리 이론 기본편4 -이진 탐색 트리 + heap(힙) 간단하게-

1. 수식 트리(expression binary tree) 수식을 표현하는 이진 트리 수식 이진 트리라고도 부른다 연산자는 루트 노드이거나 가지 노드 루트와 잎 사이의 중간 노드들을 가지 노드라고 하나봐 피연산자는 모두 잎 노드에 존재함 전위, 중위, 후위순회를 이용해서 순회하면 수식의 전위표기법, 중위표기법, 후위표기법이 된다 2. 예시 다음과 같은 트리를 전위, 중위, 후위순회 해서 전위표기법, 중위표기법, 후위표기법을 구해보면? 2-1) 구현 예시 #class 정의 class Node: def __init__(self,data): self.data = data self.left = None self.right = None #tree 정의 root = Node('+') root.left = Node(..

2022. 9. 13. 02:33

트리 이론 기본편2 -이진 트리 용어 + 트리의 순회 -

1. 이진트리 모든 노드들이 2개의 서브트리를 갖는 특별한 형태의 트리 모든 노드들이 자식 노드를 "최대" 2개까지만 가질 수 있는 트리 각 자식 노드를 왼쪽 자식 노드(left child node), 오른쪽 자식 노드(right child node) 이진 트리 예시 4가지.. 모든 노드가 자식 노드를 "최대" 2개만 가지면 이진 트리가 된다 자식 노드가 아예 없어도 된다는 소리 2. 특징 레벨 i에서(높이 i에서) 노드의 최대 개수는 $2^{i}$개 높이가 h인 이진 트리가 가질 수 있는 노드의 최소 개수는 h+1개 최대 개수는 $2^{h+1}-1$개 3. 종류 이진트리의 종류에 따라 저장, 표현, 알고리즘 등이 달라질 수 있으므로 잘 구분해야한다 3-1) 포화 이진 트리(full binary tree..

2022. 9. 13. 00:40

트리 이론 기본편1 -용어 정리-

1. 트리의 개념 비선형 구조 원소들 간에 1:n 관계를 가지는 자료구조 원소들 간에 계층관계를 가지는 계층형 자료구조 상위 원소에서 하위 원소로 내려가면서 확장되는 트리 모양의 구조 ############### 선형구조와 비선형구조 간단히 ################################# 2. 트리의 정의 1개 이상의 노드로 이루어진 유한 집합 즉, 노드가 1개만 있어도 트리 최상위 노드를 root라고 부른다 루트 이외의 나머지 노드들은 n개의 부분집합 $T_{1}, T_{2}, T_{3},... , T_{n}$으로 분리 가능하다 그림과 같이 $T_{1}, T_{2}, T_{3},... , T_{n}$도 하나의 트리가 되며, 루트의 부 트리(subtree)가 된다 그러니까 어떤 tree의 일..