parallel_radixsort işlevi
Belirtilen aralıktaki öğelerin bir olmayan azalan düzende sıralama algoritmasını taban kullanarak yerleştirir. İmzalanmamış tamsayı benzeri anahtarlarına sıralanan öğeleri proje bir projeksiyon işlevi gerektiren kararlı sıralama işlevi budur. Sıralanan öğeleri için varsayılan başlatma gereklidir.
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
);
Parametreler
_Random_iterator
Giriş aralığı Yineleyici türü._Allocator
stl uyumlu bellek ayırıcı yazın._Function
Projeksiyon işlevi türü._Begin
Sıralanan aralıkta ilk öğenin konumunu adresleme bir rasgele erişim Yineleyici._End
Sıralanacak geçen aralıktaki son öğenin konumunu adresleme bir rasgele erişim Yineleyici._Alloc
stl uyumlu bellek ayırıcı örneği._Proj_func
Öğenin ayrılmaz bir değere dönüştüren projeksiyon kullanıcı tanımlı işlevi nesnesi._Chunk_size
İki paralel yürütme içine split öbek mimimum boyutu.
Notlar
Gerekli tüm aşırı n * sizeof(T) ek alan nerede n sıralanması için öğe sayısı ve T öğe türü. Bir imza ile tekli projeksiyon functorI _Proj_func(T) bir öğe verilen bir anahtar döndürmek için gerekli nerede T öğe türü ve I imzalanmamış bir tamsayı benzeri türüdür.
Projeksiyon işlevi belirtmezseniz, yalnızca öğe döndüren varsayılan projeksiyon işlevi ayrılmaz türleri için kullanılır. İşlev öğesi olmadığında projeksiyon işlevi, tamsayı türü ise derleme başarısız olacaktır.
Bir ayırıcı yazın veya stl bellek ayırıcı örneği vermezseniz std::allocator<T> arabellek ayırmak için kullanılır.
Algoritma giriş aralığı iki bölmek böler ve her bir parça paralel yürütme için iki sub-chunks ilki böler. İsteğe bağlı bağımsız değişkeni _Chunk_size algoritması, işleme boyutu parçalarını belirtmek için kullanılan < _Chunk_sizeseri olarak.
Gereksinimler
Başlık: ppl.h
Namespace: eşzamanlılık