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

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

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

49
Как проверить номер с Бобом, не зная Еву?

Вы должны проверить, что ваш друг, Боб, имеет ваш правильный номер телефона, но вы не можете спросить его напрямую. Вы должны написать вопрос на карточке и передать его Еве, которая передаст карточку Бобу и вернет вам ответ. Что вы должны написать на карточке, помимо вопроса, чтобы Боб мог...

47
Порядок определения роста от Reynolds & Tymann

Я читаю книгу под названием « Принципы информатики» (2008) Карла Рейнольдса и Пола Тиманна (опубликована в «Схемах Шаума»). Во второй главе представлены алгоритмы с примером последовательного поиска, который просто перебирает список имен и возвращает TRUE, если в списке найдено данное имя. Автор...

45
Минимальное связующее дерево против кратчайшего пути

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

45
Найти медиану несортированного массива за время

Чтобы найти медиану несортированного массива, мы можем сделать минимальную кучу за времени для элементов, а затем мы можем извлечь один за другим элементов, чтобы получить медиану. Но этот подход занял бы времени.O(nlogn)O(nlog⁡n)O(n\log n)nnnn/2n/2n/2O(nlogn)O(nlog⁡n)O(n \log n) Можем ли мы...

44
Самый длинный путь в неориентированном дереве с одним обходом

Существует этот стандартный алгоритм поиска самого длинного пути в ненаправленных деревьях с использованием двух поисков в глубину: Запустите DFS из случайной вершины и найдите самую дальнюю из нее; скажи это .vvvv′v′v' Теперь запустите DFS из чтобы найти самую дальнюю вершину. Этот путь является...

40
В чем разница между алгоритмом, языком и проблемой?

Похоже, что на этом сайте люди часто исправляют других за запутанные «алгоритмы» и «проблемы». В чем разница между этими? Как я узнаю, когда мне следует рассмотреть алгоритмы и рассмотреть проблемы? И как они связаны с понятием языка в теории формального...

40
Объясняя актуальность асимптотической сложности алгоритмов для практики проектирования алгоритмов

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

39
Почему Mersenne Twister считается хорошим?

Mersenne Twister считается хорошим. Черт, источник CPython говорит, что он «является одним из наиболее тщательно протестированных генераторов из существующих». Но что это значит? Когда меня просят перечислить свойства этого генератора, большинство из того, что я могу предложить, плохо: Он массивный...

39
Выбор подзадач для динамического программирования

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

38
Факторный алгоритм более эффективен, чем наивное умножение

Я знаю, как кодировать для факториалов, используя итеративные и рекурсивные (например, n * factorial(n-1)например). Я прочитал в учебнике (без каких-либо дальнейших объяснений), что существует еще более эффективный способ кодирования для факториалов, разделив их пополам рекурсивно. Я понимаю,...

36
Математика позади преобразования из любой базы в любую базу без прохождения базы 10?

Я искал математику за преобразование из любой базы в любую базу. Это больше о подтверждении моих результатов, чем о чем-либо. Я нашел то, что кажется моим ответом на mathforum.org, но я все еще не уверен, правильно ли я это понял. У меня есть преобразование из большей базы в меньшую базу, хорошо,...

35
Почему журнал в биг-о двоичного поиска не является базой 2?

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

35
Получаете ли вы DFS, если вы меняете очередь на стек в реализации BFS?

Вот стандартный псевдокод для поиска в ширину: { seen(x) is false for all x at this point } push(q, x0) seen(x0) := true while (!empty(q)) x := pop(q) visit(x) for each y reachable from x by one edge if not seen(y) push(q, y) seen(y) := true Здесь pushи popпредполагаются операции очереди. Но что,...

35
В худшем случае

У меня проблемы с поиском хороших ресурсов, которые дают наихудший случай на месте стабильногоO ( n lnн )O(nln⁡n)O(n \ln n) алгоритма сортировки. Кто-нибудь знает какие-нибудь хорошие ресурсы? Просто напоминание, означает, что он использует переданный массив, а алгоритму сортировки разрешено...

34
Алгоритм, который находит число простых путей от

Можно ли предложить мне алгоритм линейного времени , который принимает в качестве входных данных ориентированного ациклического граф и две вершины S и T и возвращает число простых путей от й до т в G . У меня есть алгоритм, в котором я буду запускать DFS (Поиск в глубину), но если DFS найдет t, то...

34
Как измерить «сортировку»

Мне интересно, есть ли стандартный способ измерения "сортировки" массива? Будет ли массив с медианным числом возможных инверсий считаться максимально несортированным? Под этим я подразумеваю, что это в основном как можно дальше от сортировки или обратной...

33
Насколько асимптотически плохо наивные тасовки?

Хорошо известно, что этот «наивный» алгоритм перестановки массива путем замены каждого элемента на другой, случайно выбранный, не работает правильно: for (i=0..n-1) swap(A[i], A[random(n)]); В частности, поскольку на каждой из итераций делается один из вариантов (с одинаковой вероятностью),...

33
Есть ли разница между динамическим программированием сверху вниз и снизу вверх?

Есть ли принципиальная разница между динамическим программированием сверху вниз и снизу вверх? В частности, существует ли проблема, которую можно решить снизу вверх, но не сверху вниз? Или подход снизу вверх просто раскручивает повторение подхода сверху...