[정렬 알고리즘, C#] 퀵 정렬(Quick Sort) - Hoare, Lomuto 분할 방식
·
Unity,C#/알고리즘
■ 퀵 정렬(Quick Sort)퀵 정렬은 기준값(Pivot)을 하나 선택한 뒤, 그보다 작은 값은 왼쪽, 큰 값은 오른쪽으로 보내며 배열을 분할하고, 각 부분을 재귀적으로 다시 정렬하는 알고리즘이다.퀵 정렬의 핵심 원리는 다음과 같다.Pivot(기준값)을 하나 정한다.배열을 pivot보다 작은 부분과 큰 부분으로 나눈다.이 두 부분을 재귀적으로 다시 퀵 정렬한다.이처럼 퀵 정렬은 분할(Divide) → 정복(Conquer) → 결합(Combine)의 순서를 따르는 전형적인 분할 정복(Divide and Conquer) 알고리즘이다.조금 복잡해 보일 수 있지만, pivot을 기준으로 어떻게 분할되고, 재귀가 어디까지 이어지는지만 이해하면 직접 구현하는 데에도 큰 어려움이 없다. ■ 퀵 정렬 구현 - Ho..