-
고급 정렬(2) - 퀵 정렬(quick sort)Algorithm/기본문제 2021. 3. 13. 14:11
- 기준점(pivot)을 정해서 기준점보다 작은 데이터는 기준점 좌측에, 큰 데이터는 우측에 배치하는 함수를 작성
- 각 왼쪽, 오른쪽은 재귀용법을 사용하여 다시 동일 함수를 호출하여 위의 작업을 반복함
- 함수는 (왼쪽 + 기준점 + 오른쪽) 배열을 리턴함
function quickSort(data) { if (data.length <= 1) { return data; } const left = []; const right = []; const pivot = data[0]; for (let i = 1; i < data.length; i++) { if (pivot > data[i]) { left.push(data[i]); } else { right.push(data[i]); } } return quickSort(left).concat([pivot].concat(quickSort(right))); }
'Algorithm > 기본문제' 카테고리의 다른 글
고급 정렬(1) - 병합정렬(merge sort) (0) 2021.03.13 기본 정렬(버블정렬, 선택정렬, 삽입정렬) (0) 2021.03.13