[javascript] 퀵정렬 구현하기

ameliaDeveloper·2024년 10월 31일

javascript

목록 보기
9/12

피봇(=중심축)을 기준으로 하여, 리스트의 크기가 0 또는 1이 될때까지 반복

입력한 숫자 배열의 0번째를 피봇이라고 가정한다

퀵정렬은 입력배열을 점점 작게 (큰놈 -> 작은놈으로 줄이고 줄이기, 몸집을 점점 줄이기) 나눠서
재귀적으로(=원래 자리로 돌아감) 정렬하는 방식이다

그리고, 가장중요한!
return값의 형태는 배열형태로 병합된다
병합순서 :: [피봇보다 작은 값들이 있던 left, 피봇, 피봇보다 큰 값들이 있던 right]

위 사진처럼 피봇과 같은 '5'가 중간에 있는 경우에 가운데 있는 5는 중간에 위치한 상태 그대로 있는다.

퀵정렬의 핵심은
1. 피봇을 기준으로 요소분할
2. 재귀적(원래 상태로 돌아오려는) 반복 정렬
3. 피봇과 비교해서 왼쪽, 오른쪽 분할하는 것이 포인트

퀵정렬에 대한 잘못된 이해
1. 배열의 양쪽 끝값을 단순비교하는게 아님

0개의 댓글