2025/03/19 2

[알고리즘] 정렬 알고리즘 (1) (퀵 정렬)

1. 퀵 정렬1) 개념: 퀵 정렬이란 가장 많이 사용되는 정렬 알고리즘 중 하나로, 평균적으로 O(n log n)의 시간복잡도를 가지면서 빠르고 효율적임. 또한, 분할 정복 알고리즘(Divide and Conquer)을 기반으로 작동.① 피벗을 선택② 피벗을 기준으로 작은 값과 큰 값으로 나눔③ 왼쪽과 오른쪽 부분을 다시 퀵 정렬로 재귀적으로 정렬 2) 시간 복잡도평균 시간복잡도 - O(n log n)최악 시간복잡도 - O(n^2) (드물게 발생)▶ 대부분 빠른 정렬 성능을 제공 3) C#을 사용한 예시static void Main(string[] args){ int[] arr = new int[] { 3, 5, 6, 8, 1, 2, 4, 7 }; QuickSort(arr, 0, arr.Len..

알고리즘 공부 2025.03.19

[자료구조] 이진탐색트리 (Binary Search Tree)

1. 개념: 계층적인 구조를 가지는 트리중에서 각 노드의 자식이 최대 2개인 이진 트리이며, 정렬된 데이터를 빠르게 검색, 삽입, 삭제 할 수 있도록 설계된 자료구조 2. 구조와 특징1) 각 노드의 왼쪽 서브트리에는 "현재 노드보다 작은 값"이 저장됨2) 각 노드의 오른쪽 서브트리에는 "현재 노드보다 큰 값"이 저장됨3) 각 서브트리도 위의 규칙을 만족해야 함 8 / \ 3 10 / \ \ 1 6 14 / \ / 4 7 13 3. 이진 탐색 트리의 연산1) 검색- 탐색과정① 루트에서 시작해서 찾고자 하는 값 X가 현재 노드 값보다 작으면 왼쪽으로 이동② 크다면 오른쪽으로 이동③ 탐색 2) 삽입- 삽입과정① 루트에서 ..

자료구조 공부 2025.03.19