1. 알고리즘 개념.
퀵소트는 버블정렬을 개선한 것입니다. 1962년 CAR Hoare가 제안했습니다.
2. 알고리즘적 사고.
원패스 정렬을 통해 정렬할 데이터를 두 개의 독립적인 부분으로 나눕니다. 한 부분의 모든 데이터는 다른 부분의 모든 데이터보다 작습니다. 그런 다음 이 방법을 사용하여 전체 데이터를 각각 빠르게 정렬합니다. 정렬 프로세스는 재귀적으로 진행될 수 있으므로 전체 데이터가 정렬된 시퀀스가 됩니다.
3. 아이디어를 구현하십시오.
① 첫 번째 키워드 K 1 을 제어어로 사용하여 [K 1 ,K 2 ,…,K n ]을 두 개의 하위 영역으로 나누어 왼쪽 영역의 모든 키워드가 K 1 이하가 되고 모든 키워드가 오른쪽 영역에서는 K 1보다 크거나 같고, 마지막으로 제어 워드는 두 하위 영역 사이의 적절한 위치에 위치합니다. 하위 영역의 데이터는 여전히 정렬되지 않은 상태입니다.
② 왼쪽 부분을 전체적으로 처리하여 ①의 과정에 따라 처리하고, 오른쪽 부분도 동일하게 처리한다. (즉, 재귀)
③ 왼쪽 부분이 처리될 때까지 ①, ②를 반복합니다.
public static voidquickSortByMid(int[] a, int low, int high) { if (low >= high) return; // Split intivot = a[low]; // 기본 값 int i = low, j = high; while (i < j) { while (i < j && a[j] >= 피벗) --j a[i]=a[j] while (i < j && a[i] <= 피벗) + +나; a[j]=a[i]; } a[i]=pivot; QuickSortByMid(a, low, i-1); QuickSortByMid(a, i+1, high);빠른 정렬 알고리즘의 개략도:
이상이 이 글의 전체 내용입니다. 자바 퀵 정렬 알고리즘을 배우는 모든 분들에게 도움이 되었으면 좋겠습니다.