Вопросы с тегом «search-algorithms»

Алгоритмы поиска элемента в определенной структуре данных (чаще всего в дереве).

79
Поиск по графику: сначала ширина, либо глубина

При поиске графиков существует два простых алгоритма: ширина в ширину и глубина вначале (обычно это делается путем добавления всех соседних узлов графа в очередь (ширина в первую очередь) или в стек (глубина в первую очередь)). Есть ли преимущества одного над другим? Те, о которых я мог думать:...

49
Почему бинарный поиск быстрее, чем троичный?

Поиск массив элементов с помощью бинарного поиска дублей, в худшем случае журнал 2 N итераций , потому что на каждом шаге мы подрезать половину нашего пространства поиска. Если бы вместо этого мы использовали «троичный поиск», мы бы вырезали две трети пространства поиска на каждой итерации, поэтому...

31
Нахождение интересных анаграмм

Скажем, что и b 1 b 2 … b n - две строки одинаковой длины. Anagramming из двух строк является взаимно однозначное отображение р : [ 1 ... п ] → [ 1 ... п ] такое , что я = Ь р ( я ) для каждого I .a1a2…ana1a2…ana_1a_2\ldots a_nb1b2…bnb1b2…bnb_1b_2\ldots b_np:[1…n]→[1…n]p:[1…n]→[1…n]p:[1\ldots...

28
Алгоритм определения диаметра дерева с использованием BFS / DFS. Почему это работает?

Эта ссылка предоставляет алгоритм для определения диаметра ненаправленного дерева с использованием BFS / DFS . Подводя итог: Запустите BFS на любом узле в графе, помня узел, который вы обнаружили последним. Запустите BFS, вспомнив последний обнаруженный узел v. d (u, v) - диаметр дерева. Почему это...

27
Как мне найти свою жену в супермаркете?

Если два человека теряются в лабиринте, есть алгоритм , который они оба могут использовать , чтобы найти друг друга , не будучи предварительно договорились , что алгоритм они будут использовать? Я думаю, что у этого алгоритма есть некоторые характеристики: Каждый человек должен иметь возможность...

22
Один элемент, который отличается двумя массивами. Как найти это эффективно?

Я готовлюсь к собеседованию по кодированию и не могу найти самый эффективный способ решения этой проблемы. Допустим, у нас есть два массива, состоящих из несортированных чисел. Массив 2 содержит число, которого нет в массиве 1. Оба массива имеют случайно расположенные числа, не обязательно в одном...

19
Кратчайший путь на неориентированном графе?

Поэтому я подумал, что этот (хотя и несколько базовый) вопрос относится к следующему: Скажем, у меня есть график размером 100 узлов, расположенных в виде шаблона 10x10 (подумайте, шахматная доска). График является ненаправленным и невзвешенным. Перемещение по графику включает перемещение трех...

19
Назначение серого узла в графе поиска в глубину

Во многих реализациях поиска в глубину, который я видел (например: здесь ), код различает серую вершину (обнаружена, но не все ее соседи были посещены) и черную вершину (обнаружена и все ее соседи посещены) , Какова цель этого различия? Кажется, что алгоритм DFS никогда не посещает посещенную...

17
Нахождение пары непересекающихся битовых векторов

Я даю вам список из nnn битвекторов шириной kkk . Ваша цель - вернуть два битовых вектора из списка, у которых нет общих единиц, или сообщить, что такой пары не существует. Например, если я дам вам [00110,01100,11000][00110,01100,11000][00110, 01100, 11000] то единственным решением будет...

16
Как реализовать алгоритм AO *?

Я заметил, что при реализации поисковых алгоритмов используются разные структуры данных. Например, мы используем очереди для реализации поиска в ширину, стеки для поиска в глубину и мини-кучи для реализации алгоритма A * . В этих случаях нам не нужно явно создавать дерево поиска. Но я не могу найти...

16
Как допустимая эвристика обеспечивает оптимальное решение?

При использовании A * (или любого другого лучшего алгоритма поиска пути) мы говорим, что используемая эвристика должна быть допустимой , то есть она никогда не должна переоценивать фактическую длину пути решения (или перемещения). Как допустимая эвристика обеспечивает оптимальное решение? Я...

14
Каковы современные алгоритмы поиска пути на непрерывной карте Земли?

Предположим, у меня есть автономное надводное судно на солнечной энергии где-то во фьордах Норвегии, снабженное довольно недавним набором карт, приемником GPS и никакими средствами для передачи подробных команд от меня. Это судно должно достичь, скажем, острова Хайнань в кратчайшие возможные сроки....

14
Существует ли какое-либо исследование или теория, объединяющая бинарный поиск и интерполяционный поиск?

Я только что прочитал Можно ли считать этот алгоритм алгоритмом бинарного поиска? и вспомнил, что несколько лет назад я написал индексатор / поиск файлов журнала, чтобы найти записи журнала в больших текстовых файлах по окну даты / времени. Делая это, я решил попробовать поиск по интерполяции (я не...

14
Можно ли считать этот алгоритм алгоритмом бинарного поиска?

Выполняя второе кодовое ката (которое просит вас реализовать алгоритм двоичного поиска пять раз, каждый раз с другим методом), я придумал немного другое решение, которое работает следующим образом: Если у меня есть отсортированный массив длины 100, и я вижу, что его начальное поле содержит число...

13
Что такое непрофессиональное объяснение универсального поиска?

Я читаю книгу на тему информатики, но мне не хватает необходимых предпосылок. Обычно, когда я сталкиваюсь с терминами, я не понимаю, я просто ищу их, но для Универсального поиска я просто не смог найти объяснения, подходящего для читателя без опыта в области статистики / информатики. Я читал эту...

11
Параллельный алгоритм нахождения максимума за времени с использованием процессоров

Мы были представлены в классе с алгоритмом нахождения максимума в массиве параллельно в временной сложности с компьютерами.O(1)O(1)O(1)n2n2n^2 Алгоритм был: Дан массив A длины n: Создайте массив флагов B длиной n и инициализируйте его нулями с компьютерами.nnn Сравните каждые 2 элемента и напишите...

11
Направленный союз-найти

Рассмотрим ориентированный граф , на котором можно динамически добавлять края и сделать некоторые конкретные запросы.граммграммG Пример: непересекающееся-множество лесов Рассмотрим следующий набор запросов: arrow(u, v) equiv(u, v) find(u) первый добавляет стрелку к графу, второй решает, если ,...

11
Предлагая уточнения типов

На работе мне было поручено вывести некоторую информацию о типах динамического языка. Я переписываю последовательности операторов во вложенные letвыражения, например так: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then {...

11
Нахождение k-го наименьшего элемента из заданной последовательности только с O (k) памятью O (n) времени

Предположим , что мы читаем последовательность чисел, один за другим. Как найти к «й наименьший элемент только с помощью O ( K ) клеток памяти и в линейном времени ( O ( п ) ). Я думаю , что мы должны сохранить первые K члены последовательности и когда получим K + 1 «й член, удалить термин ,...

10
Определение конкретного числа в времени и пространстве (наихудший случай)

\newcommand\ldotd{\mathinner{..}} Учитывая, что A[1..n]A[1..n]A[1\ldotd n] являются целыми числами, такими, что 0≤A[k]≤m0≤A[k]≤m0\le A[k]\le m для всех 1≤k≤n1≤k≤n1\le k\le n , и вхождением каждого число, кроме определенного числа в A[1..n]A[1..n]A[1\ldotd n] является нечетным числом. Попробуйте...