이 이름을 들으면 빠른 분류가 매우 빠를 수 있지만 알고리즘 시간의 최악의 경우 복잡성은 삽입 분류와 동일합니다. 빠른 분류가되는 이유는 힙 분류보다 빠른 속도가 빠르기 때문입니다. 원래 배열에서 새로운 저장 공간을 직접 열어야합니다. 빠른 정렬 아이디어는 매우 간단합니다. 이는 원래 배열을 G1과 G2의 두 부분으로 나누기위한 키워드 K를 선택하는 것입니다. G2의 모든 데이터는 크거나 동일합니다. k. 코드의 정렬 메소드는 지금 진술의 설명입니다. 주요 알고리즘은 K의 위치를 찾고 원래 배열을 두 부분으로 나누는 것입니다. 방법 getplocation은 빠른 정렬의 핵심입니다. 그의 구현 원리는 삽입 분류와 비슷하지만 약간 비슷합니다. 매번 맵의 최종 위치는 엔드 요소와 키워드로 사용됩니다 J는 코어보다 크다. I와 J는 욕심 많은 뱀과 같다 앞으로 가십시오. 이와 같은 루프 후, 시작 1-1은 크기로 분리되어 코어를 중간에 놓고 핵심 위치를 분할 선으로 반환합니다.
코드 사본은 다음과 같습니다.
공개 클래스 QuickSort {
public int getplocation (int [] map, int start, int end) {
int core = map [end];
int i = start-1;
for (int j = start; j <= end-1; j ++) {
if (map [j] <= core) {
i ++;
int cache = map [j];
지도 [j] =지도 [i];
맵 [i] = 캐시;
}
}
i ++;
지도 [end] =지도 [i];
지도 [i] = 코어;
반환 i;
}
public void sort (int [] map, int start, int end) {
if (start <end) {
int p = getPlocation (맵, 시작, 끝);
정렬 (지도, 시작, p-1);
정렬 (지도, p+1, 끝);
}
}
public static void main (String [] args) {
int [] map = new int [] {4,1,5,3,7,12,65,7};
QuickSort QS = New QuickSort ();
Qs.Sort (Map, 0, Map.Length-1);
for (int i = 0; i <map.length; i ++) {
System.out.println (지도 [i]);
}
}
}