aboutsummaryrefslogtreecommitdiff
path: root/doc/Manual/ru/BH_Algo.pod
diff options
context:
space:
mode:
Diffstat (limited to 'doc/Manual/ru/BH_Algo.pod')
-rw-r--r--doc/Manual/ru/BH_Algo.pod165
1 files changed, 165 insertions, 0 deletions
diff --git a/doc/Manual/ru/BH_Algo.pod b/doc/Manual/ru/BH_Algo.pod
new file mode 100644
index 0000000..87ca07e
--- /dev/null
+++ b/doc/Manual/ru/BH_Algo.pod
@@ -0,0 +1,165 @@
+=encoding UTF-8
+
+
+=head1 НАИМЕНОВАНИЕ
+
+BH_Algo - Общие алгоритмы
+
+
+=head1 СИНТАКСИС
+
+ #include <BH/Algo.h>
+
+ 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</BH_Swap>)
+
+=item *
+
+Разбиение массива (L</BH_Partition>)
+
+=item *
+
+Сортировка (L</BH_Sort>)
+
+=item *
+
+Работа с кучей (L</BH_HeapMake>, L</BH_HeapRemove>, L</BH_HeapInsert>,
+L</BH_HeapReplace>)
+
+=back
+
+Эти алгоритмы позволяют эффективно выполнять различные операции над массивами и
+другими структурами данных.
+
+
+=head1 API ВЫЗОВЫ
+
+
+=head2 BH_Swap
+
+ void BH_Swap(void *dest,
+ void *src,
+ size_t size);
+
+Меняет значение между переменными I<dest> и I<src> заданного размера I<size>.
+
+
+=head2 BH_Partition
+
+ void *BH_Partition(void *pivot,
+ void *array,
+ size_t size,
+ size_t element,
+ BH_EqualCallback equal);
+
+Разбивает массив элементов I<array> (с количеством элементов I<size> и размером
+элемента I<element>) на две группы относительно элемента I<pivot>.
+
+Параметр I<equal> принимает указатель на функцию, которая сравнивает два
+элемента.
+
+Параметр I<pivot> может ссылаться на элемент разбиваемого массива.
+
+Функция возвращает указатель на первый элемент массива, который принадлежит
+второй группе.
+
+
+=head2 BH_Sort
+
+ void BH_Sort(void *array,
+ size_t size,
+ size_t element,
+ BH_EqualCallback equal);
+
+Сортирует массив элементов I<array> (с количеством элементов I<size> и размером
+элемента I<element>).
+
+Параметр I<equal> принимает указатель на функцию, которая сравнивает два
+элемента.
+
+
+=head2 BH_HeapMake
+
+ void BH_HeapMake(void *array,
+ size_t size,
+ size_t element,
+ BH_EqualCallback equal);
+
+Создаёт кучу в массиве I<array> (с количеством элементов I<size> и размером
+элемента I<element>).
+
+Параметр I<equal> принимает указатель на функцию, которая сравнивает два
+элемента.
+
+
+=head2 BH_HeapRemove
+
+ void BH_HeapRemove(void *array,
+ size_t size,
+ size_t element,
+ BH_EqualCallback equal);
+
+Извлекает верхний элемент кучи в массиве I<array> (с количеством элементов
+I<size> и размером элемента I<element>).
+
+Параметр I<equal> принимает указатель на функцию, которая сравнивает два
+элемента.
+
+
+=head2 BH_HeapInsert
+
+ void BH_HeapInsert(void *value,
+ void *array,
+ size_t size,
+ size_t element,
+ BH_EqualCallback equal);
+
+Добавляет элемент I<value> в кучу в массиве I<array> (с количеством элементов
+I<size> и размером элемента I<element>).
+
+Если I<value> равен NULL, предполагается, что новое значение находится в конце
+массива.
+
+Параметр I<equal> принимает указатель на функцию, которая сравнивает два
+элемента.
+
+
+=head2 BH_HeapReplace
+
+ void BH_HeapReplace(void *value,
+ void *array,
+ size_t size,
+ size_t element,
+ BH_EqualCallback equal);
+
+Извлекает верхний элемент кучи в массиве I<array> (с количеством элементов
+I<size> и размером элемента I<element>) и добавляет в неё элемент I<value>.
+
+Если I<value> равен NULL, предполагается, что новое значение находится в конце
+массива.
+
+Параметр I<equal> принимает указатель на функцию, которая сравнивает два
+элемента.
+
+
+=head1 СМ. ТАКЖЕ
+
+L<BH>