java.lang.Object
xyz.cofe.sort.BinFinderImpl
public class BinFinderImpl
extends java.lang.Object
Реализация функций бинарного поиска
-
Constructor Summary
Constructors Constructor Description BinFinderImpl() -
Method Summary
Modifier and Type Method Description static <LIST, E> intheadIndex(BinFinder<LIST,E> finder, LIST lst, java.util.Comparator<E> cmp, E target, int begin, int endex)Поиск "головы" - ищет в списке начало некого значения.static <LIST, E> inttailIndex(BinFinder<LIST,E> finder, LIST lst, java.util.Comparator<E> cmp, E target, int begin, int endex)Поиск "хвоста" - ищет в списке хвост некого значения.static <LIST, E> inttailIndex(BinFinder<LIST,E> finder, LIST lst, java.util.Comparator<E> cmp, E target, int begin, int endex, E found, int foundIndex)Поиск "хвоста" - ищет в списке хвост некого значения.
-
Constructor Details
-
BinFinderImpl
public BinFinderImpl()
-
-
Method Details
-
headIndex
public static <LIST, E> int headIndex(BinFinder<LIST,E> finder, LIST lst, java.util.Comparator<E> cmp, E target, int begin, int endex)Поиск "головы" - ищет в списке начало некого значения.Пример есть список:
[0] = 2 // <- это будет "голова" для искомого значения 3
[1] = 2
[2] = 3
[3] = 5 // <- это будет "голова" для искомого значения 7
[4] = 8
[5] = 8
[6] = 9- Type Parameters:
LIST- Тип спискаE- Тип элемента в списке- Parameters:
finder- ссылка на интерфейс BinFinder, для доступа к функцииBinFinder.get(Object, int)lst- списокcmp- функция согласно которой отсортированы элементы в спискеtarget- искомое значениеbegin- начало области поискаendex- конец (исключительно) области поиска- Returns:
- индекс соответ голове или -1, еслли не найдено
-
tailIndex
public static <LIST, E> int tailIndex(BinFinder<LIST,E> finder, LIST lst, java.util.Comparator<E> cmp, E target, int begin, int endex, E found, int foundIndex)Поиск "хвоста" - ищет в списке хвост некого значения.Пример есть список:
[0] = 2
[1] = 2
[2] = 3 // <- это будет "хвост" для искомого значения 2
[3] = 5 // <- это будет "хвост" для искомого значения 4
[4] = 8
[5] = 8
[6] = 9 // <- это будет "хвост" для искомого значения 8- Type Parameters:
LIST- Тип спискаE- Тип элемента в списке- Parameters:
finder- ссылка на интерфейс BinFinder, для доступа к функцииBinFinder.get(Object, int)lst- списокcmp- функция согласно которой отсортированы элементы в спискеtarget- искомое значениеbegin- начало области поискаendex- конец (исключительно) области поискаfound- ранее найденое значениеfoundIndex- ранее найденый индекс- Returns:
- индекс соответ хвосту или -1, еслли не найдено
-
tailIndex
public static <LIST, E> int tailIndex(BinFinder<LIST,E> finder, LIST lst, java.util.Comparator<E> cmp, E target, int begin, int endex)Поиск "хвоста" - ищет в списке хвост некого значения.Пример есть список:
[0] = 2
[1] = 2
[2] = 3 // <- это будет "хвост" для искомого значения 2
[3] = 5 // <- это будет "хвост" для искомого значения 4
[4] = 8
[5] = 8
[6] = 9 // <- это будет "хвост" для искомого значения 8- Type Parameters:
LIST- Тип спискаE- Тип элемента в списке- Parameters:
finder- ссылка на интерфейс BinFinder, для доступа к функцииBinFinder.get(Object, int)lst- списокcmp- функция согласно которой отсортированы элементы в спискеtarget- искомое значениеbegin- начало области поискаendex- конец (исключительно) области поиска- Returns:
- индекс соответ хвосту или -1, еслли не найдено
-