퀵 정렬 알고리즘 (Quick Sort)
필요가 있어 테스트로 만들었다가 데이터의 양이 너무 많아 다른 방법으로 처리하게 됨...
그래서 버려진 소스 ㅋㅋㅋㅋㅋㅋ
나중에 써먹기 위한, 순전히 나만을 위한 포스팅.
ㅋ
var arr : [Any] = []
let count = 200000
func quickSort(left: Int, right: Int) {
var i = left
var j = right
let p = Int((i+j)/2)
let pivotNumber = arr[p]
while i <= j {
while arr[i] < pivotNumber {
if i == count-1 {
break
}
i += 1
}
while arr[j] > pivotNumber {
if j == 0 {
break
}
j -= 1
}
if i < j {
let tmp = arr[i]
arr[i] = arr[j]
arr[j] = tmp
}
i += 1
j -= 1
}
if left < j {
quickSort(left: left, right: j)
}
if i < right {
quickSort(left: i, right: right)
}
}
코드를 복붙 후 보안을 위해 변수명을 수정했으니 복붙만 하시면 실제로 안돌아갈지도 모릅니다 ㅎㅎㅎ
그리고 여기서 사족을 제거할 수 있는 방법이 있다면, 댓글토론도 환영합니다 ㅎㅎㅎ
정렬 알고리즘에 관해 상세하게 설명한 페이지를 첨부합니다.
http://hsp1116.tistory.com/33
https://ko.wikipedia.org/wiki/퀵_정렬