Divid and Conquer 의 형제
- 합병정렬 정리
- 핵심개념: 리스트를
반
으로 나누고, 각 부분을재귀적으로 정렬
한 다음, 두 부분을합병
합니다. - 시간복잡도: 최선, 평균, 최악 모두 O(nlogn) → + : 일관된 시간복잡도
- 공간복잡도: O(n) (추가 배열을 사용하기 때문에) → - : 추가 메모리 필요
- 핵심개념: 리스트를
- 퀵정렬 정리
- 핵심개념:
피벗을 선택
하여 이보다 작은 요소와 큰 요소를분할
한 후(파티션), 각 부분을재귀적으로 정렬
합니다. - 시간복잡도: 평균 O(nlogn), 최악 O(n2) (피벗 선택에 따라 달라짐) → + 평균적으로 빠름, 최악 크게 증가
- 공간복잡도: 평균 O(logn) (재귀의 깊이), 최악의 경우 O(n) (피벗 선택이 최악일 때) → + 추가 메모리 적게 소모
- 이름이 퀵정렬인 이유 : 다른 비교 기반 정렬 알고리즘들에 비해 일반적으로 더 빠르게 작동한다는 사실에서 유래 (1960년대 기준)
- 핵심개념:
'배움 __IL > 자료구조&알고리즘' 카테고리의 다른 글
Hash Table 정리 (0) | 2024.02.19 |
---|---|
알고리즘 3줄 정리 [DP : Memoization, ] (1) | 2023.12.28 |
동적계획법 : 동적계획법 이론과 문제 (0) | 2023.04.02 |
그리디 : 그리디 알고리즘 이론과 문제 (0) | 2023.04.02 |
탐색 : 이진탐색 이론과 문제 (0) | 2023.03.26 |