퀵 정렬 2

Quick Sort (퀵 정렬)

퀵 정렬 (Quick Sort) 주어진 배열을 두 개로 분할하고, 각각을 정렬 그럼 병합 정렬과 동일한 것이 아닌가? 차이점 1 : 병합 정렬은 그냥 두 부분으로 나누는 반면, 퀵 정렬은 분할할 때, 기준 아이템(pivot item) 중심으로, 이보다 작은 것은 왼편, 큰 것은 오른편에 위치 차이점 2 : 각 부분 정렬이 끝난 후, 병합 정렬은 "병합"이란 후처리 작업이 필요하나, 퀵 정렬은 필요 없음 퀵 정렬 과정 알고리즘 def quick_sort(a, low, high):# (리스트, 시작 인덱스, 끝 인덱스) if low < high: pivot = partition(a,low,high) quick_sort(a, low, pivot-1) quick_sort(a, pivot+1, high) Hoar..

Algorithm 2021.04.19

Quick Sort (퀵 정렬)

설명 퀵 정렬은 기준키를 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 하여 작은 값을 데이터와 큰 값을 갖는 데이터로 분리해가며 정렬하는 방법 합병정렬과 동일? - 다르다 합병정렬은 그냥 두 부분으로 나누는 반면, 퀵정렬은 분할할 때, 기준키 중심으로 작은 값과 큰 값을 위치 각 부분 정렬이 끝난 후, 합병정렬은 '합병'이란 후처리 작업 진행, 퀵정렬은 필요하지 않음 알고리즘 def quickSort(arr, begin, end): if begin < end: p = partition(arr, begin, end) quickSort(arr, begin, p-1) quickSort(arr, p+1, end) def partition (arr, begin, end):..

Algorithm 2021.03.02