Package xyz.cofe.sort

Class SortInsert<Container,​Element>

  • Type Parameters:
    Container - Тип конейнера
    Element - Тип элемента
    Direct Known Subclasses:
    SortInsertDefault

    public abstract class SortInsert<Container,​Element>
    extends 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 Detail

      • SortInsert

        public SortInsert()
    • Method Detail

      • 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,
                                       Comparator<Element> comp,
                                       int begin,
                                       int endex)
        Вставка сортировкой
        Parameters:
        container - контейнер
        item - элемент
        comp - компаратор
        begin - начало диапазона вставки
        endex - конец диапазона вставки
        Returns:
        позиция в которую произведена вставка
      • createForList

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