1. Введение
В этом руководстве мы рассмотрим реализацию двоичного дерева в Java.
Для этого руководства мы будем использовать отсортированное двоичное дерево , содержащее значения int
.
В этом руководстве мы рассмотрим реализацию двоичного дерева в Java.
Для этого руководства мы будем использовать отсортированное двоичное дерево , содержащее значения int
.
В этой статье мы рассмотрим преимущества бинарного поиска по сравнению с простым линейным поиском и рассмотрим его реализацию на Java.
Допустим, мы занимаемся продажей вина, и миллионы покупателей посещают наше приложение каждый день.
Через наше приложение клиент может отфильтровать товары, цена которых ниже n
долларов, выбрать бутылку из результатов поиска и добавить их в свою корзину. У нас есть миллионы пользователей, каждую секунду ищущих вина по ограниченной цене. Результаты должны быть быстрыми.
В этом уроке мы узнаем об алгоритме поиска в ширину, который позволяет нам искать узел в дереве или графе, путешествуя по их узлам в ширину, а не в глубину.
Во-первых, мы рассмотрим немного теории об этом алгоритме для деревьев и графов. После этого мы углубимся в реализацию алгоритмов на Java. Наконец, мы рассмотрим их временную сложность.
Основной подход алгоритма поиска в ширину (BFS) заключается в поиске узла в структуре дерева или графа путем изучения соседей до потомков.
В этом руководстве мы рассмотрим поиск в глубину в Java.
Поиск в глубину (DFS) — это алгоритм обхода, используемый как для структур данных Tree, так и для Graph . Поиск в глубину углубляется в каждую ветвь, прежде чем переходить к изучению другой ветви .
В следующих разделах мы сначала рассмотрим реализацию дерева, а затем графа.
Чтобы узнать, как реализовать эти структуры в Java, ознакомьтесь с нашими предыдущими руководствами по двоичному дереву и графику .
В этом уроке мы рассмотрим алгоритмы интерполяционного поиска и обсудим их плюсы и минусы. Кроме того, мы реализуем его на Java и поговорим о временной сложности алгоритма.
Поиск с интерполяцией — это усовершенствование бинарного поиска , предназначенное для равномерно распределенных данных.
Двоичный поиск разделяет пространство поиска на каждом шаге независимо от распределения данных, поэтому его временная сложность всегда равна O(log(n))
.
В этом уроке мы рассмотрим концепцию поиска соседей в двумерном пространстве . Затем мы рассмотрим его реализацию на Java.
Мы знаем, что бинарный поиск — это эффективный алгоритм поиска точного совпадения в списке элементов с использованием подхода «разделяй и властвуй».
Давайте теперь рассмотрим двумерную область, где каждый элемент представлен координатами XY (точками) на плоскости .
В этом руководстве мы узнаем, как искать шаблон в заданном файле/файлах, используя Java и сторонние библиотеки, такие как Unix4J и Grep4J .
В Unix есть мощная команда под названием grep
, что означает « печать глобальных регулярных выражений
». Он ищет шаблон или регулярное выражение в заданном наборе файлов.
Можно использовать ноль или более параметров вместе с командой grep, чтобы обогатить результат поиска, который мы подробно рассмотрим в следующем разделе.
Рутинная работа по поиску набора символов или слова в текстовой строке большего размера выполняется в различных полях. Например, в биоинформатике нам может понадобиться найти фрагмент ДНК в хромосоме.
В СМИ редакторы находят ту или иную фразу в объемном тексте. Наблюдение за данными выявляет мошенничество или спам, ища подозрительные слова, встроенные в данные.
В любом контексте поиск настолько известен и утомителен, что в народе его называют «проблемой иголки в стоге сена» . В этом руководстве мы продемонстрируем простой алгоритм, использующий метод indexOf(String str, int fromIndex)
класса Java String
для поиска всех вхождений слова в строке.