Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Function template integer_sort

Boost , Boost.Sort , Header <boost/sort/spreadsort/integer_sort.hpp>

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Function template integer_sort

boost::sort::spreadsort::integer_sort — Integer sort algorithm using random access iterators with just right-shift functor. (All variants fall back to std::sort if the data size is too small, < detail::min_sort_size).

Synopsis

// In header: <boost/sort/spreadsort/integer_sort.hpp>

template<typename RandomAccessIter, typename Right_shift> 
  void integer_sort(RandomAccessIter first, RandomAccessIter last, 
                    Right_shift shift);

Description

<integer_sort>- это быстрый шаблонный алгоритм гибридного радикса / сравнения, который при тестировании имеет тенденцию быть примерно на 50% до 2X быстрее, чем<std::sort>для больших тестов (>=100kB).

Performance: Worst-case performance is O(N * (lg(range)/s + s)) , so integer_sort is asymptotically faster than pure comparison-based algorithms. s is max_splits, which defaults to 11, so its worst-case with default settings for 32-bit integers is O(N * ((32/11) slow radix-based iterations fast comparison-based iterations).

Some performance plots of runtime vs. n and log(range) are provided:
windows_integer_sort
osx_integer_sort

[Warning]Warning

Бросок исключения может привести к потере данных. Это также будет бросать, если бросит небольшой вектор размера, и в этом случае не будет потери данных.

Недействительные аргументы вызывают неопределенное поведение.

[Note]Note

<spreadsort>Функция обеспечивает обертку, которая называет самый быстрый алгоритм сортировки, доступный для типа данных, что позволяет ускорить общее программирование.

Меньшая изO(N*log(N))сравнения иO(N*log(K/S + S))Операции в наихудшем случае, когда:

N<last>—<first>,

K - журнал диапазона в битах (32 для 32-битных целых чисел с использованием их полного диапазона),

S - постоянная, называемая max_splits, по умолчанию 11 (за исключением строк, где это журнал размера символа).

Параметры:

first

Итератор указывает на первый элемент.

<last>

Итератор, указывающий на один за пределами конца данных.

<shift>

Функтор, возвращающий результат смещения значения_типа вправо заданного числа битов.

Требуется:

RandomAccessIter value_type является мягким.

RandomAccessIter value_type - LessThanComparable

Пост-условия:

Элементы в диапазоне<first>,<last>сортируются в порядке возрастания.

Броски:

sd:: Исключение Пропагандирует исключения, если какой-либо из элементов сравнения, элемент своп (или ходы), правый сдвиг, вычитание правых сдвинутых элементов, функторы или любые операции на итераторах бросают.

PrevUpHomeNext

Статья Function template integer_sort раздела Boost.Sort Header <boost/sort/spreadsort/integer_sort.hpp> может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Header <boost/sort/spreadsort/integer_sort.hpp> ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:58:50/0.028126001358032/1