Graphisoft®

GSRootVersion: 1.0

PartialSort

범위 내의 지정된 수의 작은 요소들을 오름차순으로, 또는 이항 술어에 의해 지정된 순서 기준에 따라 정렬합니다.

template <class Ran>
void PartialSort (
    Ran                 first,
    Ran                 mid,
    Ran                 last
);
template <class Ran, class BinPred>
void PartialSort (
    Ran                 first,
    Ran                 mid,
    Ran                 last,
    BinPred             pred
);

Template 파라미터

Ran
랜덤 접근 반복자입니다.
BinPred
이항 술어(Binary predicate)입니다.

파라미터

first
정렬될 범위의 1번째 요소의 위치를 설명하는 랜덤 접근 반복자입니다.
mid
정렬될 하위 범위의 마지막 직전 요소의 위치를 설명하는 랜덤 접근 반복자입니다.
last
부분적으로 정렬될 범위의 마지막 직전 요소의 위치를 설명하는 랜덤 접근 반복자입니다.
pred
순서 상으로 요소들이 연속적이라는 조건을 만족하는 비교 기준을 정의하는 사용자 정의 술어 함수 객체입니다. 이항 술어(binary predicate)를 2개의 인자들을 취하며 만족할 때에는 true를, 만족하지 않을 때에는 false를 리턴합니다.

설명

PartialSort는 범위 [first, last)에 있는 요소들을 재정렬합니다. 그래서 이 요소들은 부분적으로 오름차순이 됩니다. 구체적으로 이것은 오름차순으로 정렬된 가장 작은 mid - first 요소들을 범위 [first, mid)에 넣습니다. 나머지 last - mid 요소들은 정렬되지 않은 대로 범위 [mid, last)에 넣습니다. PartialSort의 2가지 버전들은 어떤 요소가 다른 요소보다 작다는 것을 정의하는 점에서 다릅니다. 1번째 버전은 operator<를 사용하여 객체들을 비교하고, 2번째 버전은 술어 pred를 사용하여 객체들을 비교합니다. PartialSort의 1번째 버전에 대한 후조건은 다음과 같습니다. 만약 범위 [first, mid) 안에 유효한 2개의 반복자 ij가 있을 때, ij보다 앞서고 k가 범위 [mid, last)에서 유효한 반복자라면, *j < *i*k < *i는 둘 다 false가 될 것입니다. PartialSort의 2번째 버전의 후조건에 해당하는 내용은 pred(*j, *i)pred(*k, *i) 모두 false입니다. 비공식적으로 이 후조건은 다음을 의미합니다: 처음 mid - first 요소들은 오름차순으로 정렬되어 있으며 [mid, last)의 요소들 중에서 [first, mid)에 있는 요소들보다 작은 것은 하나도 없습니다.

참고사항

알고리즘