=encoding UTF-8 =head1 НАИМЕНОВАНИЕ BH_Algo - Общие алгоритмы =head1 СИНТАКСИС #include int data[4] = {5, 2, 3, 1}; int value, i; value = 4; BH_Partition(&value, data, 4, sizeof(int), intEqual); BH_Sort(data, 4, sizeof(int), intEqual); BH_HeapMake(data, 4, sizeof(int), intEqual); cc prog.c -o prog -lbh =head1 ОПИСАНИЕ Библиотека BH_Algo предоставляет набор алгоритмов для работы с данными: =over =item * Обмен значениями (L) =item * Разбиение массива (L) =item * Сортировка (L) =item * Работа с кучей (L, L, L, L) =back Эти алгоритмы позволяют эффективно выполнять различные операции над массивами и другими структурами данных. =head1 API ВЫЗОВЫ =head2 BH_Swap void BH_Swap(void *dest, void *src, size_t size); Меняет значение между переменными I и I заданного размера I. =head2 BH_Partition void *BH_Partition(void *pivot, void *array, size_t size, size_t element, BH_EqualCallback equal); Разбивает массив элементов I (с количеством элементов I и размером элемента I) на две группы относительно элемента I. Параметр I принимает указатель на функцию, которая сравнивает два элемента. Параметр I может ссылаться на элемент разбиваемого массива. Функция возвращает указатель на первый элемент массива, который принадлежит второй группе. =head2 BH_Sort void BH_Sort(void *array, size_t size, size_t element, BH_EqualCallback equal); Сортирует массив элементов I (с количеством элементов I и размером элемента I). Параметр I принимает указатель на функцию, которая сравнивает два элемента. =head2 BH_HeapMake void BH_HeapMake(void *array, size_t size, size_t element, BH_EqualCallback equal); Создаёт кучу в массиве I (с количеством элементов I и размером элемента I). Параметр I принимает указатель на функцию, которая сравнивает два элемента. =head2 BH_HeapRemove void BH_HeapRemove(void *array, size_t size, size_t element, BH_EqualCallback equal); Извлекает верхний элемент кучи в массиве I (с количеством элементов I и размером элемента I). Параметр I принимает указатель на функцию, которая сравнивает два элемента. =head2 BH_HeapInsert void BH_HeapInsert(void *value, void *array, size_t size, size_t element, BH_EqualCallback equal); Добавляет элемент I в кучу в массиве I (с количеством элементов I и размером элемента I). Если I равен NULL, предполагается, что новое значение находится в конце массива. Параметр I принимает указатель на функцию, которая сравнивает два элемента. =head2 BH_HeapReplace void BH_HeapReplace(void *value, void *array, size_t size, size_t element, BH_EqualCallback equal); Извлекает верхний элемент кучи в массиве I (с количеством элементов I и размером элемента I) и добавляет в неё элемент I. Если I равен NULL, предполагается, что новое значение находится в конце массива. Параметр I принимает указатель на функцию, которая сравнивает два элемента. =head1 СМ. ТАКЖЕ L