적응형 정렬
보이기
적응형 정렬 또는 어댑티브 소트(adaptive sort)는 정렬 알고리즘의 일종으로, 입력의 기존 순서를 활용하는 경우이다. 입력 순서의 사전 정렬 또는 다양한 장애 측정 정의에 대한 제한된 양의 장애로부터 이점을 얻고 더 빠르게 정렬된다. 적응형 정렬은 일반적으로 기존 정렬 알고리즘을 수정하여 수행된다.
동기
[편집]비교 기반 정렬 알고리즘은 전통적으로 시간 복잡도를 처리할 때 O(n log n)의 최적 경계를 달성하는 것을 처리해 왔다. 적응형 정렬은 더 나은 시간을 얻기 위해 입력의 기존 순서를 활용하므로 알고리즘이 정렬하는 데 걸리는 시간은 시퀀스의 크기와 시퀀스의 무질서에 따라 원활하게 증가하는 함수이다. 즉, 입력이 미리 정렬되어 있을수록 더 빨리 정렬되어야 한다.
실제로는 대부분 정렬된 시퀀스가 일반적이기 때문에 이는 정렬 알고리즘의 매력적인 기능으로 비쳐진다. 따라서 입력의 기존 순서를 고려하면 기존 정렬 알고리즘의 성능이 향상될 수 있다.
최악의 경우에 가장 잘 작동하는 대부분의 최악의 경우 정렬 알고리즘, 특히 힙 정렬 및 병합 정렬은 입력 내의 기존 순서를 고려하지 않는다. 그러나 이러한 결함은 병합 정렬의 경우 검사를 통해 쉽게 수정된다. 왼쪽 그룹의 마지막 요소가 오른쪽 그룹의 첫 번째 요소보다 작거나 같은 경우 병합 작업은 간단한 연결로 대체될 수 있다. 이는 알고리즘을 적응형으로 만드는 범위 내에 있는 수정이다.