Algorithm 12

[알고리즘] 정렬 알고리즘이란?(Merge Sort, Heap Sort, Quick Sort)

1. 병합 정렬 (Merge Sort)병합 정렬은 말 그대로 "나누고 합치는" 과정을 통해 전체를 정렬하는 방식아무리 복잡한 문제라도 작게 나누면 해결하기 쉽다는 '분할 정복(Divide and Conquer)' 철학에 가장 충실한 알고리즘1. 어떻게 동작하나요?분할 (Divide): - 배열의 원소가 1개가 될 때까지 계속해서 절반으로 나눔- 원소가 하나만 남은 배열은 그 자체로 '정렬된' 상태라고 할 수 있음병합 (Merge): - 이제 나누어진 작은 배열들을 다시 합침- 이때 그냥 합치는 게 아니라, 두 배열의 첫 번째 원소끼리 비교해서 더 작은 값을 먼저 가져오는 방식으로 정렬- 이 과정을 반복하면 최종적으로 완벽하게 정렬된 배열이 완성# 두 개의 정렬된 부분을 하나로 합치는 함수def merge..

ALGORITHM 2025.09.08

[알고리즘] 정렬 알고리즘이란?(Insertion Sort, Bubble Sort)

정렬 알고리즘의 종류정렬 알고리즘은 크게 두 가지 방식으로 나눌 수 있음비교 기반 정렬두 데이터의 크기를 비교하며 정렬하는 방식종류: 삽입 정렬(Insertion Sort), 버블 정렬(Bubble Sort), 병합 정렬(Merge Sort), 힙 정렬(Heap Sort), 퀵 정렬(Quick Sort) 등비교 기반 정렬은 아무리 빨라도 평균적으로 $O(n \log n)$의 시간 복잡도보다 좋을 수 없음Linear Time Sort데이터의 값을 직접 비교하지 않고, 다른 속성을 활용해 정렬합종류: 계수 정렬(Counting Sort), 기수 정렬(Radix Sort), 버킷 정렬(Bucket Sort) 등삽입 정렬 (Insertion Sort)데이터를 하나씩 확인하며, 각 데이터를 이미 정렬된 부분 배열..

ALGORITHM 2025.09.07