parallel_radixsort (Función)
Organiza los elementos en un intervalo especificado en un orden no descendente utilizando un algoritmo de ordenación de base. Esta es una función estable de ordenación que requiere una función de proyección que pueda proyectar elementos que se puedan ordenar en claves como enteros sin signo. Se requiere una inicialización predeterminada para que se ordenen los elementos.
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
);
Parámetros
_Random_iterator
El tipo de iterador del intervalo de entrada._Allocator
El tipo de un asignador compatible de memoria STL._Function
El tipo de función de proyección._Begin
Un iterador de acceso aleatorio que dirige la posición del primer elemento del intervalo que se ordenen._End
Un iterador de acceso aleatorio que dirige la posición una más allá del último elemento en el intervalo que se ordenen._Alloc
Una instancia de un asignador compatible de memoria STL._Proj_func
Un objeto definido por el usuario de la función de proyección que convierte un elemento en un valor entero._Chunk_size
El tamaño de mimimum de un fragmento que se divide en dos para la ejecución en paralelo.
Comentarios
Todas las sobrecargas requieren el espacio adicional de n * sizeof(T) , donde es el número n de elementos que se van a ordenar, y T es el tipo de elemento. Un functor singular de proyección con la firmaI _Proj_func(T) es necesario devolver una clave cuando se especifica un elemento, donde el tipo T de elemento y I es un unsigned entero- como tipo.
Si no se proporciona una función de proyección, una función de proyección predeterminada que simplemente devuelve el elemento se utiliza para tipos enteros. La función no se compilará si el elemento no es un tipo entero en ausencia de una función de proyección.
Si no se proporciona un tipo o una instancia del asignador, el asignador std::allocator<T> de memoria STL se utiliza para asignar el búfer.
El algoritmo divide el intervalo de entrada en dos partes y sucesivamente divide cada fragmento en dos sub- fragmentos para la ejecución en paralelo. El argumento opcional _Chunk_size se puede utilizar para indicar al algoritmo que debe partes de los identificadores de tamaño <_Chunk_size en serie.
Requisitos
Encabezado: ppl.h
Espacio de nombres: simultaneidad