parallel_radixsort 함수
기수 정렬 알고리즘을 사용하여 비 내림차순으로 지정된 범위에 있는 요소를 정렬합니다. 이것은 부호 없는 정수 형식의 키로 정렬된 요소를 예상할 수 있는 프로젝션 함수를 필요로 하는 안정된 정렬 기능입니다. 기본 초기화는 정렬중인 요소들에게 필요합니다.
template<
typename _Random_iterator
>
inline void parallel_radixsort(
const _Random_iterator &_Begin,
const _Random_iterator &_End
);
template<
typename _Allocator,
typename _Random_iterator
>
inline void parallel_radixsort(
const _Random_iterator &_Begin,
const _Random_iterator &_End
);
template<
typename _Allocator,
typename _Random_iterator
>
inline void parallel_radixsort(
const _Allocator& _Alloc,
const _Random_iterator &_Begin,
const _Random_iterator &_End
);
template<
typename _Random_iterator,
typename _Function
>
inline void parallel_radixsort(
const _Random_iterator &_Begin,
const _Random_iterator &_End,
const _Function &_Proj_func,
const size_t _Chunk_size = 256 * 256
);
template<
typename _Allocator,
typename _Random_iterator,
typename _Function
>
inline void parallel_radixsort(
const _Random_iterator &_Begin,
const _Random_iterator &_End,
const _Function &_Proj_func,
const size_t _Chunk_size = 256 * 256
);
template<
typename _Allocator,
typename _Random_iterator,
typename _Function
>
inline void parallel_radixsort(
const _Allocator& _Alloc,
const _Random_iterator &_Begin,
const _Random_iterator &_End,
const _Function &_Proj_func,
const size_t _Chunk_size = 256 * 256
);
매개 변수
_Random_iterator
입력 범위의 반복기 형식입니다._Allocator
STL의 종류는 호환 메모리 할당자입니다._Function
프로젝션 함수의 형식입니다._Begin
저장할 범위에 있는 첫 번째 요소의 위치를 가리키는 임의 접근 반복기입니다._End
저장할 범위에 있는 마지막 요소의 하나 뒤 위치를 가리키는 임의 접근 반복기입니다._Alloc
STL 호환 메모리 할당자의 인스턴스입니다._Proj_func
요소를 정수 값으로 변환하는 사용자 정의 프로젝션 함수 개체입니다._Chunk_size
병렬 실행을 위한 두 개로 분할된 청크의 최소 크기입니다.
설명
모든 오버 로드는 n * sizeof(T) 추가 공간이 필요합니다. n 은 정렬할 요소의 수이고 T 는 요소 형식입니다. I _Proj_func(T) 서명을 사용한 단항 프로젝션 함수는 요소가 주어질 때 키 반환이 요구됩니다. T 는 요소 형식이고 I 부호 없는 정수 형식입니다.
프로젝션 함수를 제공 하지 않을 경우, 간단하게 요소를 반환하는 기본 프로젝션 함수가 정수 계열 형식에 사용됩니다. 요소가 프로젝션 함수에서 정수계열 형식이 아닐 경우, 함수는 컴파일에 실패할 것입니다.
할당자 형식 또는 인스턴스가 지정되지 않은 경우, std::allocator<T> 가 버퍼를 할당 하는 데 사용됩니다.
알고리즘은 입력된 범위의 두 조각으로 나누고 연속적으로 각 청크 병렬에서 실행을 위해 두 개의 하위 청크로 나눕니다. 선택적 인수 _Chunk_size 는 직렬로 < _Chunk_size 크기의 청크를 처리하는 알고리즘을 나타내는데 사용할 수 있습니다.
요구 사항
헤더: ppl.h
네임스페이스: 동시성