Перейти к основному содержимому

16 записей с тегом "Java Search"

Посмотреть все теги

· 7 мин. чтения

1. Введение

В этом руководстве мы рассмотрим реализацию двоичного дерева в Java.

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

2. Бинарное дерево

· 2 мин. чтения

1. Обзор

Java 8 Stream API представил два метода, которые часто понимают неправильно: findAny() и findFirst() .

В этом кратком руководстве мы рассмотрим разницу между этими двумя методами и когда их использовать.

2. Использование Stream.findAny()

· 5 мин. чтения

1. Обзор

В этой статье мы рассмотрим преимущества бинарного поиска по сравнению с простым линейным поиском и рассмотрим его реализацию на Java.

2. Необходимость эффективного поиска

Допустим, мы занимаемся продажей вина, и миллионы покупателей посещают наше приложение каждый день.

Через наше приложение клиент может отфильтровать товары, цена которых ниже n долларов, выбрать бутылку из результатов поиска и добавить их в свою корзину. У нас есть миллионы пользователей, каждую секунду ищущих вина по ограниченной цене. Результаты должны быть быстрыми.

· 7 мин. чтения

1. Обзор

В этом уроке мы узнаем об алгоритме поиска в ширину, который позволяет нам искать узел в дереве или графе, путешествуя по их узлам в ширину, а не в глубину.

Во-первых, мы рассмотрим немного теории об этом алгоритме для деревьев и графов. После этого мы углубимся в реализацию алгоритмов на Java. Наконец, мы рассмотрим их временную сложность.

2. Алгоритм поиска в ширину

Основной подход алгоритма поиска в ширину (BFS) заключается в поиске узла в структуре дерева или графа путем изучения соседей до потомков.

· 5 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим поиск в глубину в Java.

Поиск в глубину (DFS) — это алгоритм обхода, используемый как для структур данных Tree, так и для Graph . Поиск в глубину углубляется в каждую ветвь, прежде чем переходить к изучению другой ветви .

В следующих разделах мы сначала рассмотрим реализацию дерева, а затем графа.

Чтобы узнать, как реализовать эти структуры в Java, ознакомьтесь с нашими предыдущими руководствами по двоичному дереву и графику .

2. Поиск в глубину дерева

· 4 мин. чтения

1. Введение

В этом уроке мы рассмотрим алгоритмы интерполяционного поиска и обсудим их плюсы и минусы. Кроме того, мы реализуем его на Java и поговорим о временной сложности алгоритма.

2. Мотивация

Поиск с интерполяцией — это усовершенствование бинарного поиска , предназначенное для равномерно распределенных данных.

Двоичный поиск разделяет пространство поиска на каждом шаге независимо от распределения данных, поэтому его временная сложность всегда равна O(log(n)) .

· 14 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим концепцию сопоставления строк с образцом и то, как мы можем сделать это быстрее. Затем мы рассмотрим его реализацию на Java.

2. Сопоставление строк с образцом

2.1. Определение

· 9 мин. чтения

1. Обзор

В этом уроке мы рассмотрим концепцию поиска соседей в двумерном пространстве . Затем мы рассмотрим его реализацию на Java.

2. Одномерный поиск против двумерного поиска

Мы знаем, что бинарный поиск — это эффективный алгоритм поиска точного совпадения в списке элементов с использованием подхода «разделяй и властвуй».

Давайте теперь рассмотрим двумерную область, где каждый элемент представлен координатами XY (точками) на плоскости .

· 3 мин. чтения

1. Обзор

В этом руководстве мы узнаем, как искать шаблон в заданном файле/файлах, используя Java и сторонние библиотеки, такие как Unix4J и Grep4J .

2. Фон

В Unix есть мощная команда под названием grep , что означает « печать глобальных регулярных выражений ». Он ищет шаблон или регулярное выражение в заданном наборе файлов.

Можно использовать ноль или более параметров вместе с командой grep, чтобы обогатить результат поиска, который мы подробно рассмотрим в следующем разделе.

· 4 мин. чтения

1. Обзор

Рутинная работа по поиску набора символов или слова в текстовой строке большего размера выполняется в различных полях. Например, в биоинформатике нам может понадобиться найти фрагмент ДНК в хромосоме.

В СМИ редакторы находят ту или иную фразу в объемном тексте. Наблюдение за данными выявляет мошенничество или спам, ища подозрительные слова, встроенные в данные.

В любом контексте поиск настолько известен и утомителен, что в народе его называют «проблемой иголки в стоге сена» . В этом руководстве мы продемонстрируем простой алгоритм, использующий метод indexOf(String str, int fromIndex) класса Java String для поиска всех вхождений слова в строке.

2. Простой алгоритм