Package xyz.cofe.sort

Class BinFinderImpl

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> int headIndex​(BinFinder<LIST,​E> finder, LIST lst, java.util.Comparator<E> cmp, E target, int begin, int endex)
    Поиск "головы" - ищет в списке начало некого значения.
    static <LIST,​ E> int tailIndex​(BinFinder<LIST,​E> finder, LIST lst, java.util.Comparator<E> cmp, E target, int begin, int endex)
    Поиск "хвоста" - ищет в списке хвост некого значения.
    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)
    Поиск "хвоста" - ищет в списке хвост некого значения.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • 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, еслли не найдено