로딩
요청 처리 중입니다...

재귀 분할 정복 퀵 정렬

 재귀 분할 정복 퀵 정렬

퀵 정렬의 핵심은 pivot을 정하고 좌측에 작은 것들, 우측에 큰것들 (혹은 반대로 정렬 가능)을 계속 재귀적으로 될때 마다 하는 것이다. 일례로 다음과 같다. extension Array where Element: Comparable { func quickSort() -> Self { var copy = self _quickSort(lst: ©, start: 0, end: copy.count - 1) return copy } } func _quickSort(lst: inout [T], start: Int, end: Int) { if start < end { var split = pivotPartition(lst: &lst, start: start, end: end) _quickSort(lst: &lst, start: start, end: split - 1) _quickSort(lst: &lst, start: split + 1, end: end) ...