퀵 정렬

- 피벗은 첫 번째 값으로 정한다
- 배열의 양 끝에서부터 중앙을 향하여 동시에 검색
- left 초기화: 피벗 바로 다음
- right 초기화: 배열의 맨 마지막
- left는 오른쪽으로 이동하며 피벗보다 크거나 같은 값을 찾는다
- right는 왼쪽으로 이동하며 피벗보다 작은 값을 찾는다 (인덱스 0까지)
- 찾고 나서 left가 right보다 작으면 (인덱스 값이 작은 것을 말함) left 위치의 배열 값과 right 위치의 배열 값을 바꾼다
- 교환한 후 다시 left는 오른쪽으로 이동하면서 피벗보다 큰 값을 찾고 right는 왼쪽으로 이동하며 피벗보다 작은 값을 찾는다.
- left가 right보다 커진 경우 피벗과 right의 값을 교체한다.
- 그러면 원래 right 위치의 왼쪽에 있는 것은 모두 피벗보다 작고 오른쪽에 있는 것은 모두 피벗보다 크다.

- 배열의 모든 값이 피벗보다 작은 경우: left는 끝까지 가도 피벗보다 큰 값을 찾을 수가 없음
그런 경우에는 배열의 가장 끝에 무한대가 있다고 가정한다.