parallel_radixsort-Funktion
Ordnet Elemente in einem angegebenen Bereich eine absteigende Reihenfolge nicht mit einem Basiselement Sortieralgorithmus dargestellt.Dies ist eine stabile Sortierfeature, die einer Projektionsfunktion benötigt, die Projektelemente kann in den Schlüsseln sortiert sind ähnliche Zahl ohne Vorzeichen.Standardinitialisierung ist für Elemente erforderlich, die sortiert werden.
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
);
Parameter
_Random_iterator
Der Iterator den Typ des Eingabebereichs._Allocator
Der Typ einer kompatiblen Speicherbelegungsfunktion STLs._Function
Der Typ der Projektionsfunktion._Begin
Ein Iterator mit wahlfreier Zugriff, der die Position des ersten Elements im Bereich adressiert sortiert werden._End
Ein Iterator mit wahlfreier Zugriff, der die eine Position hinter dem letzten Element im Bereich adressiert sortiert werden soll._Alloc
Eine Instanz einer kompatiblen Speicherbelegungsfunktion STLs._Proj_func
Ein benutzerdefiniertes Projektions funktionsobjekt, die ein Element in einen ganzzahligen Wert konvertiert._Chunk_size
Die mimimum Größe eines Ausschnitts, der in zwei für die parallele Ausführung geteilt wird.
Hinweise
Alle Überladungen müssen zusätzliche Leerzeichen n * sizeof(T), in dem n die Anzahl der zu sortierenden Elementen, ist T und den Elementtyp ist.Ein unäres Projektions funktionselement mit der Signatur I _Proj_func(T) ist erforderlich, um einen Schlüssel zurückzugeben, sofern ein Element, wobei T der Elementtyp darstellt und I ein Anzahl ähnlicher Typ ohne Vorzeichen ist.
Wenn Sie keine Projektionsfunktion bereitstellen, wird eine standardmäßige Projektionsfunktion, die einfach das Element zurückgibt, für ganzzahlige Typen verwendet.Die Funktion kann nicht kompiliert werden, wenn das Element kein ganzzahliger Typ in Ermangelung einer Projektionsfunktion ist.
Wenn Sie keinen Belegungsfunktions - Werttyp oder eine Instanz angeben, wird die STL-Speicherbelegungsfunktion std::allocator<T> verwendet, um den Puffer zuzuordnen.
Der Algorithmus teilt der Eingabebereich in zwei Codeausschnitte und teilt nacheinander in jeder Ausschnitt in zwei Sub Ausschnitte parallel zur Ausführung unter.Das optionale Argument _Chunk_size kann verwendet werden, um den Algorithmus anzugeben, dass es sollte < Größe von ausschnitte Handle _Chunk_size seriell.
Anforderungen
Header: ppl.h
Namespace: Parallelität