quick sort

    [Sort] Quick Sort (퀵 정렬)

    분할정복 알고리즘을 이용하여, 기준점(피봇)을 잡고 왼쪽, 오른쪽을 나누어 각각 정렬한다. 정의 리스트에서 기준점을 설정한다. 리스트를 순회하며 기준점보다 작은 원소는 왼쪽에, 큰것을 오른쪽에 둔다. 설명 퀵정렬은 리스트가 고정 크기인 경우(대부분의 프로그래밍 언어)와 가변 리스트인 경우(파이썬)으로 나눌 수 있다. 파이썬 같은 경우 분할정복 아이디어로 피봇 보다 작은 원소, 피봇보다 큰 원소를 각각 새로운 리스트로 만들어서 합치는 방법으로 한다. 이외의 경우, 투포인터를 이용하여 좌, 우에서 피벗쪽으로 탐색을 진행하고 L, R이 교차될 때까지 탐색하며 자리를 교환한다. 피봇은 0번 인덱스, 중간 인덱스, 마지막 인덱스 무엇으로 잡아도 상관 없으나 파이썬 알고리즘에는 0번 인덱스로 잡는 것이 가장 편하다..