정렬 알고리즘 - 빠 른 정렬
분 치 된 사상 을 채택 하 다.주로 세 단계 로 나 뉜 다.
첫 번 째 단 계 는 기 수 를 선택한다.
두 번 째 단 계 는 정렬 배열 을 분 구 하 는 과정 에서 이 기수 보다 작은 것 을 왼쪽 에 놓 고 이 기수 보다 큰 것 을 오른쪽 에 놓 습 니 다.
세 번 째 단 계 는 남 은 숫자 가 있 을 때 까지 좌우 파 티 션 에 똑 같은 동작 을 수행 합 니 다.
분석 하 다.
최 악의 경우, 즉 데이터 의 구분 불 균형 이다. 일 부 는 n - 1 개의 숫자 이 고, 다른 일 부 는 데이터 가 없 으 며, 매번 구분 할 때마다 이런 상황 이 라면 그 시간 복잡 도 는 O (n2) 이다.일반적인 상황 (가장 좋 은 것 포함) 에서 그 시간 복잡 도 는 O (nlog2n) 이다.아래 의 실현 과정 은 원래 의 배열 을 바탕 으로 배열 을 정렬 하기 때문에 그 공간 복잡 도 는 O (1) 이다.
C 언어 구현
void qsort(int *arr, int start, int end)
{
int high = end, low = start;
int value = arr[start];
if(NULL != arr || start value){
high--;
}
if(low
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WEEK. 01 2022.04.03 TIL정렬(sorting)이란 이름, 학번, 학점 등의 키(key)를 항목값의 대소 관계에 따라 데이터 집합을 일정한 순서로 바꾸어 늘어놓는 작업을 의미함. 정렬 알고리즘은 안정적인 알고리즘과 그렇지 않은 알고리즘으로 나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.