Оглавление:

Как реализовать двоичное дерево поиска в Java?
Как реализовать двоичное дерево поиска в Java?

Видео: Как реализовать двоичное дерево поиска в Java?

Видео: Как реализовать двоичное дерево поиска в Java?
Видео: Java. Деревья ч.1. Рекурсивный обход в глубину. 2024, Апрель
Anonim

Реализация двоичного дерева поиска (BST) в Java

  1. Левое поддерево узла содержит только узлы с ключами меньше ключа узла.
  2. Правое поддерево узла содержит только узлы с ключами больше ключа узла.
  3. Левое и правое поддерево также должны быть двоичное дерево поиска .
  4. Не должно быть повторяющихся узлов.

Также вопрос в том, как реализован двоичный поиск в Java?

Давайте посмотрим на пример двоичного поиска в java, где мы собираемся искать элемент из массива с помощью рекурсии

  1. class BinarySearchExample1 {
  2. public static int binarySearch (int arr , int first, int last, int key) {
  3. if (last> = first) {
  4. int mid = first + (последний - первый) / 2;
  5. if (arr [mid] == key) {
  6. возврат в середине;
  7. }

Во-вторых, где мы используем двоичное дерево поиска? Дерево двоичного поиска - Использовал во многих поиск приложения, в которых данные постоянно поступают / уходят, такие как карта и набор объектов в библиотеках многих языков. Двоичный Космическая перегородка - Использовал почти в каждой 3D-видеоигре, чтобы определить, какие объекты необходимо визуализировать.

Так как же образуются бинарные деревья?

Создание двоичного дерева с помощью рекурсии

  1. Прочтите данные в x.
  2. Выделите память для нового узла и сохраните адрес в указателе p.
  3. Сохраните данные x в узле p.
  4. Рекурсивно создайте левое поддерево p и сделайте его левым дочерним элементом p.
  5. Рекурсивно создайте правое поддерево p и сделайте его правым потомком p.

В чем сложность бинарного поиска?

Бинарный поиск выполняется в худшем случае за логарифмическое время, делая O (log n) сравнений, где n - количество элементов в массиве, O - нотация Big O, а log - логарифм. Бинарный поиск занимает постоянное (O (1)) пространство, что означает, что пространство, занимаемое алгоритмом, одинаково для любого количества элементов в массиве.

Рекомендуемые: