Package xyz.cofe.sort

Class SortInsert<Container,​Element>

java.lang.Object
xyz.cofe.sort.SortInsert<Container,​Element>
Type Parameters:
Container - Тип конейнера
Element - Тип элемента
Direct Known Subclasses:
SortInsertDefault

public abstract class SortInsert<Container,​Element>
extends java.lang.Object
Сортировка вставкой.

Реализован метод sortInsert, сложнасть должна варьироваться от O( n * log n ) до O( n^2 ).

Пример 1:


 // Список куда будут добавлены в порядке возрастания элементы
 List<Integer> sortedList = new LinkedList<>();

 // Функция сравнения
 Comparator<Integer> intComparator
   = (Integer a, Integer b) -> a < b ? -1 : (a==b ? 0 : 1);

 // Функция сортировки
 SortInsert sinserter = SortInsert.createForList();

 // Генерация случайных элементов
 Random rnd = new Random();
 for( int i=0; i<50; i++ ){
   sinserter.sortInsert( // вставка в список
     sortedList, // список
     rnd.nextInt(100), // случайное число
     intComparator, // функция сравнения
     0, // вставлять от начала списка
     sortedList.size() // и до конца
   );
 }
 
Author:
nt.gocha@gmail.com
  • Constructor Summary

    Constructors 
    Constructor Description
    SortInsert()  
  • Method Summary

    Modifier and Type Method Description
    static <E> SortInsert<java.util.List<E>,​E> createForList()
    Создание экземпляра для работы со списком
    abstract Element get​(Container container, int position)
    Получение элемента в контейнере
    abstract void insert​(Container container, int position, Element item)
    Вставка элемента в контейнер
    abstract int sortInsert​(Container container, Element item, java.util.Comparator<Element> comp, int begin, int endex)
    Вставка сортировкой

    Methods inherited from class java.lang.Object

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

  • Method Details

    • insert

      public abstract void insert​(Container container, int position, Element item)
      Вставка элемента в контейнер
      Parameters:
      container - контейнер
      position - позиция в которую производится вставка
      item - Элемент
    • get

      public abstract Element get​(Container container, int position)
      Получение элемента в контейнере
      Parameters:
      container - контейнер
      position - позиция
      Returns:
      Элемент
    • sortInsert

      public abstract int sortInsert​(Container container, Element item, java.util.Comparator<Element> comp, int begin, int endex)
      Вставка сортировкой
      Parameters:
      container - контейнер
      item - элемент
      comp - компаратор
      begin - начало диапазона вставки
      endex - конец диапазона вставки
      Returns:
      позиция в которую произведена вставка
    • createForList

      public static <E> SortInsert<java.util.List<E>,​E> createForList()
      Создание экземпляра для работы со списком
      Type Parameters:
      E - Тип элемента списка
      Returns:
      экземпляр