Algoritms, Collections Flashcards
В чем идея merge sort?
Сначала задача разбивается на несколько подзадач меньшего размера. Затем эти задачи решаются с помощью рекурсивного вызова или непосредственно, если их размер достаточно мал. Наконец, их решения комбинируются, и получается решение исходной задачи.
В чем идея quick sort?
- из массива выбирается некоторой опорный элемент a[i]
- запускается процедура разделения массива, которая перемещает все ключи, меньшие, либо равные a[i], влево от него, а все ключи, большие, либо равные a[i] - вправо,
- для обоих подмассивов: если в подмассиве более двух элементов, рекурсивно запускаем для него ту же процедуру.
Что такое двоичный поиск?
Это алгоритм поиска элемента в отсортированном массиве, использующий дробление массива на половины.
Что такое Big O notation?
Обозначение для описания предельного поведения алгоритма.
принадлежит ли интерфейс Map к иерархии интерфейсов Collection?
Нет, это разные иерархии.
Почему интерфейс Map не наследуется от Collection?
Потому что у Map принцип хранения данных: пара ключ-значение, а у Collection - только значение.
Что такое NavigableSet и NavigableMap?
Это интерфейсы являются расширениями интерфейсов SortedSet и SortedMap и добавляют возможности перемещения по отсортированной коллекции.
Что такое интерфейс Enumeration?
Это быстрая версия интерфейса Iterator. У Enumeration есть всего два метода: hasMoreElements() и nextElement().
Какое отличие Enumeration и Iterator
Enumeration быстрее и использует меньше памяти чем Iterator
Iterator безопаснее потому что запрещает изменять коллекцию, а также может удалять элементы из коллекции.
Чем отличается Iterator от ListInterator?
Iterator для List и Set, а ListIterator только для List.
Iterator может проходить только в одном направлении, а ListIterator в двух.
ListIterator наследуется от Iterator и может также добавлять , заменять элементы,и возвращать индекс элементов.
Что такое ConcurrentModificationException?
Это исключительная ситуация которая возникает, когда модифицируем коллекцию во время прохождения по ней итератором, не используя итератор.
Какое отличие свойств итератора fail-fast от fail-safe?
Fail-Fast итератор бросает ConcurrentModificationException, а Fail-Safe нет.
Fail-Safe внутри работает с клонированной коллекцией.
Какая внутренняя организация HaspMap в Java?
HashMap - Внутри это массив, элементы в документации называются бакетами(buckets). В бакете хранится первый эемент связанного списка. Таким образом, HashMap имеет внутри - массив связанных списков. Элемент связанного списка - объект класса Entry, содержит ключ, значение и ссылку на следующий Entry.
Что значит маркерный интерфейс java.util.RandomAccess?
Означает что доступ к элементам коллекции происходит за константное время О(1)
Какие коллекции реализует интерфейс RandomAccess?
ArrayList
CopyOnWriteArrayList
Stack
Vector