전산학/자료구조
-
B-트리 (B-Tree)와 B+트리 (B+ Tree) 비교하기전산학/자료구조 2024. 8. 23. 20:10
B-트리와 B+트리는 데이터베이스와 파일 시스템에서 널리 사용되는 데이터 구조로, 효율적인 검색, 삽입, 삭제를 위해 설계되었습니다. 이 두 구조는 비슷해 보이지만, 특정 용도에 따라 다른 특징과 이점을 제공합니다. 여기서 각 트리의 기본 개념과 차이점을 예시와 함께 살펴보겠습니다.B-트리 (B-Tree)B-트리는 균형 유지 이진 탐색 트리의 한 형태로, 모든 리프 노드가 같은 레벨에 위치하는 자가 균형 트리입니다. B-트리는 각 노드가 여러 개의 키를 저장할 수 있으며, 노드 내 키는 정렬된 상태를 유지합니다. 각 노드의 키 사이에는 자식 포인터가 있어서, 키 값에 따라 탐색 경로가 결정됩니다.예시: [17 | 30] / | \[5 | 12] [18 | 25] [31 | ..
-
크루스칼 알고리즘(Kruskal's Algorithm)전산학/자료구조 2024. 8. 23. 19:18
크루스칼 알고리즘(Kruskal's Algorithm)은 그래프의 모든 노드를 최소 비용으로 연결하는 최소 비용 신장 트리(Minimum Spanning Tree, MST)를 찾는 알고리즘 중 하나입니다. 최소 비용 신장 트리는 그래프의 모든 노드가 연결되어 있으면서 사용된 간선들의 가중치의 합이 최소가 되는 트리 구조를 말합니다. 크루스칼 알고리즘은 그리디(Greedy) 알고리즘의 일종으로, 각 단계에서 로컬 최적해를 선택함으로써 최종적으로 글로벌 최적해를 구하는 방식을 사용합니다.크루스칼 알고리즘의 작동 원리간선 리스트 준비: 그래프의 모든 간선을 가중치에 따라 오름차순으로 정렬합니다.초기화: 최소 비용 신장 트리를 구성할 빈 집합을 준비합니다.간선 선택: 정렬된 간선 리스트에서 가장 가중치가 낮은 ..
-
빅오(Big-O) 표기법과 시간 복잡도전산학/자료구조 2024. 8. 23. 18:07
빅-오(Big-O) 표기법은 알고리즘의 시간 복잡도나 공간 복잡도를 표현하는 데 사용되는 수학적 표기 방법입니다. 이 표기법은 최악의 경우의 성능을 나타내며, 알고리즘이 입력 크기(n)에 따라 얼마나 늘어나는지를 간략하게 표현합니다. 빅-오 표기법은 알고리즘의 효율성을 이해하고 비교하는 데 중요한 도구입니다. 여기에서는 몇 가지 일반적인 시간 복잡도와 그에 해당하는 빅-오 표현을 설명하겠습니다.1. O(1) - 상수 시간(Constant Time)설명: 알고리즘이 입력 크기에 상관없이 항상 일정한 시간이 걸립니다.예시: 배열에서 특정 인덱스의 요소에 접근하기, 변수에 값 할당하기 등.2. O(log n) - 로그 시간(Logarithmic Time)설명: 알고리즘의 실행 시간이 입력 크기의 로그에 비례하..