그러나 많은 책에서는 이를 명확하게 설명하지 않으며, 교재마다 구현 방법이 다릅니다.
참고하실 수 있도록 여기에 가장 간단한 빠른 정렬 아이디어를 적어 보겠습니다.
어떤 언어를 사용하든 이 간단한 코드를 통해 빠른 정렬 아이디어와 작성 방법을 쉽게 파악할 수 있기를 바랍니다.
다음과 같이 코드 코드를 복사합니다.
함수quick_sort(목록, 시작, 끝) {
if (시작 < 끝) {
var Pivotpos = partition(list, start, end); //빠른 정렬의 기반 찾기
quick_sort(list, start, Pivotpos - 1); //왼쪽 항목을 빠르게 정렬합니다.
Quick_sort(list, Pivotpos + 1, end); //오른쪽 항목을 빠르게 정렬합니다.
}
}
//시퀀스를 베이스 번호로 나눈 두 영역으로 조정합니다. 한쪽은 베이스 번호보다 작지 않고 다른 쪽은 베이스 번호보다 크지 않습니다.
함수 파티션(목록, 시작, 종료) {
var 피벗포스 = 시작;
var 피벗 = 목록[시작];
var tmp;
for(var i = 시작 + 1; i <= 끝; i ++) {
if (목록[i] < 피벗) {
tmp = 목록[i];
피봇포스 += 1;
목록[i] = 목록[피벗포스];
목록[피벗포스] = tmp;
}
}
tmp = 목록[시작];
목록[시작] = 목록[피벗포스];
목록[피벗포스] = tmp;
피벗포스를 반환합니다;
}
var 목록 = [8,2,4,65,2,4,7,1,9,0,2,34,12];
Quick_sort(목록, 0, 목록.길이);