[자바 스크립트] --- 빠른 정렬 알고리즘 (복제자가 교사 Alley- 골목)

빠른 정렬 우선, 개념

  우리는 빠른 정렬의 우연한 어레이를 실시 배열과 중간 값의 시작에서 수행 될 수 있으며, 상기 어레이가 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 (퀵 (오른쪽))
}
코드를 복사

추천

출처www.cnblogs.com/mp-0518/p/11440536.html