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

Алгоритм - это последовательность четко определенных шагов, которые определяют абстрактное решение проблемы. Используйте этот тег, если ваша проблема связана с разработкой и анализом алгоритмов.

11
Почему быстрая сортировка лучше, чем другие алгоритмы сортировки на практике?
В стандартном курсе алгоритмов нас учат, что быстрая сортировка в среднем составляет а в худшем случае . В то же время изучаются другие алгоритмы сортировки: в худшем случае (например, mergesort и heapsort ) и даже линейное время в лучшем случае (например, сортировка пузырьков ), но с некоторыми дополнительными потребностями в …

3
Есть ли система за магией анализа алгоритма?
Существует множество вопросов о том, как анализировать время выполнения алгоритмов (см., Например, анализ времени выполнения и анализ алгоритма ). Многие из них похожи, например, те, которые запрашивают анализ затрат на вложенные циклы или алгоритмы «разделяй и властвуй», но большинство ответов, похоже, сделаны специально. С другой стороны, ответы на другой общий …

14
Почему я могу посмотреть на график и сразу же найти ближайшую точку к другой точке, но на программирование у меня уходит O (n) время?
Позвольте мне уточнить: Учитывая диаграмму рассеяния некоторого заданного числа точек n, если я хочу мысленно найти ближайшую точку к любой точке на графике, я могу сразу игнорировать большинство точек на графике, сужая свой выбор до некоторого небольшого, постоянного числа точек поблизости , Тем не менее, в программировании, учитывая набор точек …

4
Как преобразовать конечные автоматы в регулярные выражения?
Преобразование регулярных выражений в (минимальный) NFA, который принимает тот же язык, легко с помощью стандартных алгоритмов, например , алгоритма Томпсона . Другое направление кажется более утомительным, и иногда получающиеся выражения являются грязными. Какие существуют алгоритмы для преобразования NFA в эквивалентные регулярные выражения? Есть ли преимущества в отношении сложности времени или …

13
Как обмануть эвристику «попробуй несколько тестов»: алгоритмы, которые кажутся правильными, но на самом деле неверны
Чтобы попытаться проверить, является ли алгоритм для какой-либо проблемы правильным, обычная отправная точка состоит в том, чтобы попытаться запустить алгоритм вручную на нескольких простых тестовых примерах - попробуйте на нескольких примерах проблемных примеров, включая несколько простых «угловых случаев ». Это отличная эвристика: это отличный способ быстро отсеять множество неверных попыток …

2
BIT: Что такое интуиция за бинарным индексированным деревом и как о нем думали?
Бинарное индексированное дерево не имеет или почти не имеет литературы по сравнению с другими структурами данных. Единственное место, где это преподается, это учебник по topcoder . Хотя учебник завершен во всех объяснениях, я не могу понять интуицию за таким деревом? Как это было изобретено? Что является фактическим доказательством его правильности?

5
Каковы причины для изучения различных алгоритмов / структур данных, служащих одной и той же цели?
Я задавался вопросом об этом вопросе, так как я был студентом. Это общий вопрос, но я приведу примеры ниже. Я видел много алгоритмов - например, для задач с максимальным потоком я знаю около 3 алгоритмов, которые могут решить эту проблему: Ford-Fulkerson, Edmonds-Karp & Dinic, причем Dinic имеет лучшую сложность. Для …

3
Как узнать, какую нотацию анализа сложности времени использовать?
В большинстве вводных классов алгоритмов вводятся нотации, такие как (Big O) и , и студент, как правило, учится использовать одну из них для определения сложности времени.ΘОOOΘΘ\Theta Однако есть и другие обозначения, такие как , и . Существуют ли какие-либо конкретные сценарии, в которых одна нотация предпочтительнее другой?Ω ωоooΩΩ\Omegaωω\omega


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

6
Как мы можем предположить, что основные операции над числами занимают постоянное время?
Обычно в алгоритмах мы не заботимся о сравнении, сложении или вычитании чисел - мы предполагаем, что они выполняются за время . Например, мы предполагаем это, когда говорим, что сортировка на основе сравнения - это O ( n log n ) , но когда числа слишком велики, чтобы поместиться в регистры, …

4
Какая новинка в MapReduce?
Несколько лет назад MapReduce был провозглашен революцией в распределенном программировании. Также были критики но в целом был восторженный ажиотаж. Он даже запатентован! [1] Название напоминает mapи о reduceфункциональном программировании, но когда я читаю (Википедия) Шаг отображения: главный узел принимает входные данные, разделяет их на более мелкие подзадачи и распределяет их …

3
Алгоритм на месте для перемежения массива
Вам дан массив из 2 н2n2n элементов a1,2, ... ,N, б1, б2, … БNa1,a2,…,an,b1,b2,…bna_1, a_2, \dots, a_n, b_1, b_2, \dots b_n Задача состоит в том, чтобы чередовать массив, используя алгоритм на месте так, чтобы результирующий массив был похож на б1,1, б2,2, … , БN,Nb1,a1,b2,a2,…,bn,anb_1, a_1, b_2, a_2, \dots , b_n, …

9
Есть ли какие-либо проблемы, которые становятся легче, когда они увеличиваются в размерах?
Это может быть нелепым вопросом, но возможно ли иметь проблему, которая на самом деле становится легче по мере увеличения размера входных данных? Я сомневаюсь, что любые практические проблемы такие, но, может быть, мы можем изобрести вырожденную проблему, которая обладает этим свойством. Например, возможно, он начинает «решать себя» по мере того, …

5
Разрешен ли ноль в качестве веса ребра в взвешенном графике?
Я пытаюсь написать скрипт, который генерирует случайные графы, и мне нужно знать, может ли ребро в взвешенном графе иметь значение 0. на самом деле имеет смысл, что 0 можно использовать как вес ребра, но я работал с графиками в последние несколько дней, и я никогда не видел пример этого.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.