
퀵 정렬 (Quick Sort)
·
Algorithm/Sort
퀵 정렬 (Quick Sort) 분할 정복 알고리즘이지만 사실은 정복하고 분할한다. 입력의 크기가 클 경우 가장 좋은 성능을 보이는 정렬 알고리즘이다. 생물 정보 공학(Bioinformatics)에서 특정 유전자를 찾을 때 접미 배열(Suffix Array)와 함께 사용된다고 한다. 피벗(pivot) 숫자를 기준으로 피벗보다 작은 숫자를 왼쪽으로, 큰 숫자를 오른쪽으로 이동시킨 다음 피벗을 사이에 놓고 분할하는 방식이다. 피벗은 부분문제에 포함되지 않는다. pseudo code QuickSort(int *arr, int left, int right) { if (left < right) { 피벗을 arr[left] ~ arr[right] 중에 선택한다. 피벗을 arr[left]와 자리를 바꾼다. 피벗보다 ..