병합정렬(2)
-
병합 정렬 (Merge Sort) (C++)
병합 정렬 (Merge Sort)병합 정렬은 분할 정복(Divide and Conquer) 알고리즘을 사용하는 정렬 기법으로, 배열을 재귀적으로 두 부분으로 나누고, 각각을 정렬한 뒤 병합(Merge)하여 정렬된 배열을 만드는 방식. 안정적이며, 정렬 성능이 O(nlogn)으로 일정한 점에서 효율적.동작 원리분할 (Divide):배열을 두 개의 하위 배열로 분할.하위 배열의 크기가 1이 될 때까지 재귀적으로 반복.정복 (Conquer):두 개의 정렬된 하위 배열을 병합하여 하나의 정렬된 배열로 만든다.병합 (Merge):병합 과정에서 두 배열을 비교하며 작은 값을 먼저 결과 배열에 추가.특징시간 복잡도:최선/평균/최악: O(nlogn) (데이터 분할 O(logn), 병합 O(n))공간 복잡도: O(..
2025.01.04 -
정렬 (C++)
1. 정렬 (Sorting)정렬은 데이터를 특정 기준에 따라 순서대로 배열하는 작업.정렬 알고리즘의 주요 개념비교 기반 정렬: 데이터 간의 크기를 비교하여 순서를 정한다.안정적 정렬 (Stable Sort): 동일한 값이 있을 때, 원래 순서를 유지하는 정렬 방식. 예를 들어, 나이순으로 정렬하면서 이름순을 유지해야 할 때 안정적 정렬이 필요.시간 복잡도: 정렬 알고리즘의 효율성을 나타내는 척도. (https://gangdonggil.tistory.com/80)최선, 평균, 최악의 경우에 따라 다를 수 있다.기본 정렬 알고리즘버블 정렬 (Bubble Sort) (https://gangdonggil.tistory.com/84)동작 원리: 인접한 두 개의 데이터를 비교하여 크기가 작은 값을 앞으로 보내는 방..
2025.01.04