빠른 정렬 우선, 개념
우리는 빠른 정렬의 우연한 어레이를 실시 배열과 중간 값의 시작에서 수행 될 수 있으며, 상기 어레이가 2로 분할되고, 상기 어레이의 왼쪽은 대형의 오른쪽에서 왼쪽 작은 평균과 비교 . 중간 값의 비교의 종료 후, 다시 한번 유사하게 비교
둘째, 아이디어
첨자 1 중간 값을 가지고, 상기 중간 값이된다
(2), 좌측 빈 어레이를 생성하기 위해, 데이터 저장소는 중간 값 미만인
도 3은 빈 어레이에 저장된 데이터를 생성하기위한 권리는 중간 값보다 크다
어레이의 길이가 1과 동일한 경우 (4), 순환 종료 조건은, 어레이가 반환 될 때
도 5에 도시 된 바와 같이, 어레이는 두 사이클들로 분할된다
6 재귀
셋째, 코드
함수 퀵 (도착) { 경우 (arr.length <2) { 편곡을 반환; } VAR midIndex = arr.length % 2 == 0? arr.length / 2 (arr.length + 1) / 2; VAR = 중간의 도착 [midIndex]; VAR 왼쪽 = []; 오른쪽이었다 = []; {(; 나는 <arr.length 난 ++ I = 0 VAR)에 대한 경우 (I! = midIndex && 도착 [I] <= MID) { left.push (도착 [I]); } 경우 (I! = midIndex && 도착 [I]> MID) { right.push (도착 [I]) } } 퀵를 반환 (왼쪽) .concat (중간) .concat (퀵 (오른쪽)) }