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

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

8
Все ли типы данных сводятся к узлам с указателями?
Массив или вектор - это просто последовательность значений. Они, безусловно, могут быть реализованы с помощью связанного списка. Это просто набор узлов с указателями на следующий узел. Стеки и очереди - это два абстрактных типа данных, которые обычно преподаются на курсах Intro CS. Где-то в классе ученикам часто приходится реализовывать стеки …


4
Книга для алгоритмов вне Кормена
Я закончил большую часть материала в книге Кормена «Введение в алгоритмы» и ищу книгу по алгоритмам, которая охватывает материал, выходящий за рамки книги Кормана. Есть какие-нибудь рекомендации? ПРИМЕЧАНИЕ: я спрашивал об этом в stackoverflow, но не слишком доволен ответом. ПРИМЕЧАНИЕ. Глядя на большинство комментариев, я думаю, что в идеале я …

3
Существует ли алгоритм, который находит отсортированные подпоследовательности размера три за
Я хочу доказать или опровергнуть существование алгоритма, который, учитывая массив целых чисел, находит три индекса i , j и k такие, что i < j < k и A [ i ] < A [ j ] < A [ k ] (или находит, что такой тройки не существует) за …

1
Сжатие доменных имен
Мне любопытно, как можно очень компактно сжать домен произвольного имени хоста IDN (как определено в RFC5890 ), и подозреваю, что это может стать интересной задачей. Хост Unicode или доменное имя (U-метка) состоит из строки символов Unicode, обычно ограниченных одним языком в зависимости от домена верхнего уровня (например, греческими буквами ниже …

3
Как правильно сформулировать вычислительную задачу?
Я часто общаюсь с людьми, которые хотят попросить алгоритм вычислительной задачи (или его сложность), но они не выражают его строго для нас (ученых), чтобы понять. Ссылка на такие книги, как CLRS, бесполезна, потому что примеры там обычно имеют довольно простой способ строгого указания, например, учитывая список смежности графа и две …

3
Практическое применение Radix Sort
Radix sort теоретически очень быстр, когда вы знаете, что ключи находятся в определенном ограниченном диапазоне, скажем, например, значений в диапазоне . Если вы просто конвертируете значения в базу что занимает время , выполните сортировку по основанию и затем преобразуйте обратно в исходную базу для общего алгоритма .NNn[ 0 … nК- …

2
Получение отрицательного цикла с помощью Bellman Ford
Я должен найти отрицательный цикл в ориентированном взвешенном графе. Я знаю, как работает алгоритм Беллмана Форда, и что он говорит мне, существует ли достижимый отрицательный цикл. Но это явно не называет это. Как я могу получить фактический путь цикла?v 1 , v 2 , … v k , v 1v1,v2,…vk,v1v1, …

1
Трудно ли определить «двойные» арифметические прогрессии 3SUM?
Это вдохновлено вопросом интервью . Нам дан массив целых чисел и мы должны определить, существуют ли различные i < j < k такие, чтоa1, ... ,Na1,…,ana_1, \dots, a_nя < J < Ki<j<ki \lt j \lt k aК- аJ= аJ- аяak−aj=aj−aia_k - a_j = a_j - a_i k - j = …

1
Проблемы, для которых алгоритмы, основанные на уточнении разделов, работают быстрее, чем за логлиническое время
Уточнение разделов - это техника, в которой вы начинаете с конечного набора объектов и постепенно разбиваете набор. Некоторые проблемы, такие как минимизация DFA, могут быть достаточно эффективно решены с помощью уточнения разделов. Я не знаю никаких других проблем, которые обычно решаются с помощью уточнения раздела, кроме тех, которые перечислены на …

3
Насколько сложно найти дискретный логарифм?
Дискретный логарифм такого же , как нахождение в , дан в , гр и N .bbba c Nab=cmodNab=cmodNa^b=c \bmod NaaacccNNN Интересно, в каких группах сложности (например, для классических и квантовых компьютеров) это находится, и какие подходы (то есть алгоритмы) являются лучшими для выполнения этой задачи. Ссылка на википедию, приведенная выше, …

2
Как описать алгоритмы, доказать и проанализировать их?
Прежде чем читать «Искусство компьютерного программирования» (TAOCP) , я не углублялся в эти вопросы. Я бы использовал псевдокод для описания алгоритмов, понимания их и оценки времени выполнения только по порядку роста. TAOCP тщательно меняет свое мнение. TAOCP использует английский, смешанный с шагами и переходом для описания алгоритма, и использует блок-схемы …

3
Проблемы в P с заметно более быстрыми рандомизированными алгоритмами
Есть ли в проблемы, в которых рандомизированные алгоритмы бьют нижние оценки для детерминированных алгоритмов? Конкретнее, знаем ли мы для которого ? Здесь \ mathsf {PTIME} (f (n)) означает набор языков, разрешимых рандомизированным TM с постоянной (одной или двухсторонней) ошибкой в f (n) шагах. k D T I M E ( …

4
Как использовать жадный алгоритм, чтобы найти неубывающую последовательность, ближайшую к данной?
a1,…,ana1,…,ana_1, \ldots, a_n000lllaiaia_ibibib_i000lllbibib_ib i O ( n 4 √max(|a1−b1|,…,|an−bn|)max(|a1−b1|,…,|an−bn|)\max(|a_1-b_1|, \ldots, |a_n-b_n|)bibib_iO(nl√4)O(nl4)O(n\sqrt[4]{l}) Я, честно говоря, понятия не имею, как вообще начать решать этот вопрос. Мне кажется, это вопрос динамического программирования, но профессор сказал, что это должно быть решено с использованием жадного алгоритма. Было бы очень признательно, если бы кто-то указал мне …

2
Как разработать алгоритм размещения (изменяемого размера) окон на экране, чтобы покрыть как можно больше места?
Я хотел бы написать простую программу, которая принимает набор окон (ширина + высота) и разрешение экрана и выводит расположение этих окон на экране таким образом, чтобы окна занимали больше всего места. Поэтому можно изменить размер окна, сохраняя при этом output size >= initial sizeи соотношение сторон. Поэтому для окна я …

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