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

139
Поворот точки вокруг другой точки (2D)

Я пытаюсь сделать карточную игру, где карты разветвляются. Прямо сейчас, чтобы отобразить его, я использую Allegro API, который имеет функцию: al_draw_rotated_bitmap(OBJECT_TO_ROTATE,CENTER_X,CENTER_Y,X ,Y,DEGREES_TO_ROTATE_IN_RADIANS); так что с этим я могу легко сделать эффект вентилятора....

137
Учитывая строку из миллиона чисел, верните все повторяющиеся трехзначные числа

Несколько месяцев назад у меня было собеседование с хедж-фондом в Нью-Йорке, и, к сожалению, я не получил предложения о стажировке в качестве инженера по данным / программному обеспечению. (Они также попросили, чтобы решение было на Python.) Я в значительной степени облажался с первой задачей...

136
Как реализовать очередь из трех стеков?

Я столкнулся с этим вопросом в книге алгоритмов ( Алгоритмы, 4-е издание Роберта Седжвика и Кевина Уэйна). Очередь с тремя стеками. Реализуйте очередь с тремя стеками, чтобы каждая операция очереди занимала постоянное (в худшем случае) количество операций стека. Предупреждение: высокая степень...

134
Как выбрать между хеш-таблицей и Trie (префиксным деревом)?

Так что, если мне придется выбирать между хеш-таблицей или деревом префиксов, каковы различающие факторы, которые заставили бы меня выбрать один из других. С моей наивной точки зрения кажется, что использование trie имеет некоторые дополнительные издержки, поскольку оно не хранится в виде массива,...

134
Какой алгоритм параллельной сортировки имеет лучшую среднюю производительность?

Сортировка занимает O (n log n) в последовательном случае. Если у нас будет O (n) процессоров, мы будем надеяться на линейное ускорение. O (log n) параллельных алгоритмов существуют, но они имеют очень высокую константу. Они также не применимы к обычному оборудованию, у которого нет даже около O...

132
Почему временная сложность как DFS, так и BFS O (V + E)

Базовый алгоритм для BFS: set start vertex to visited load it into queue while queue not empty for each edge incident to vertex if its not visited load into queue mark vertex Поэтому я бы подумал, что временная сложность будет такой: v1 + (incident edges) + v2 + (incident edges) + .... + vn +...

131
Как сделать Zip-бомбу?

Этот вопрос о zip-бомбах естественным образом привел меня на страницу Википедии соответствующей теме . В статье упоминается пример zip-файла размером 45,1 КБ, который распаковывается до 1,3 эксабайта. Какие принципы / методы будут использованы в первую очередь для создания такого файла? На самом...

130
Что такое хорошая хеш-функция?

Что такое хорошая хеш-функция? Я видел много хэш-функций и приложений на моих курсах по структурам данных в колледже, но в основном я понял, что создать хорошую хеш-функцию довольно сложно. Мой профессор сказал, что, как правило, чтобы избежать столкновений: function Hash(key) return key mod...

130
Домашнее задание пузырьковой сортировки

В классе мы разрабатываем алгоритмы сортировки, и хотя я прекрасно понимаю их, когда говорю о них и пишу псевдокод, у меня возникают проблемы с написанием для них реального кода. Это моя попытка на Python: mylist = [12, 5, 13, 8, 9, 65] def bubble(badList): length = len(badList) - 1 unsorted = True...

130
Структура данных для загруженных игральных костей?

Предположим, что у меня есть n-сторонний загруженный кубик, где каждая сторона k имеет некоторую вероятность p K приходить, когда я раскатать. Мне любопытно, есть ли хороший алгоритм для статического хранения этой информации (то есть для фиксированного набора вероятностей), чтобы я мог эффективно...

128
Как проверить, полностью ли строка состоит из одной и той же подстроки?

Мне нужно создать функцию, которая принимает строку, и она должна возвращать trueили в falseзависимости от того, состоит ли ввод из повторяющейся последовательности символов. Длина данной строки всегда больше, 1а последовательность символов должна иметь как минимум одно повторение. "aa" //...

127
Какую коллекцию Java мне следует использовать?

В этом вопросе Как я могу эффективно выбрать контейнер стандартной библиотеки в C ++ 11?- это удобная блок-схема, которую можно использовать при выборе коллекций C ++. Я подумал, что это полезный ресурс для людей, которые не уверены, какую коллекцию им следует использовать, поэтому я попытался...

127
Рассчитайте медиану миллиарда чисел

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

126
Эффективный алгоритм сжатия коротких текстовых строк [закрыто]

В настоящее время этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, потребует дебатов, аргументов, опросов или расширенного обсуждения. Если вы считаете, что этот вопрос можно...

124
хеш-функция для строки

Я работаю над хеш-таблицей на языке C и тестирую хеш-функцию для строки. Первая функция, которую я пробовал, - это добавить код ascii и использовать по модулю (% 100), но у меня плохие результаты с первым тестом данных: 40 столкновений для 130 слов. Итоговые входные данные будут содержать 8 000...

123
Алгоритм генерации кроссворда

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

123
Максимальная прибыль от одной продажи

Предположим, нам дан массив из n целых чисел, представляющих курсы акций за один день. Мы хотим найти пару (buyDay, sellDay) с buyDay ≤ sellDay , чтобы, если бы мы купили акции в buyDay и продали их в sellDay , мы бы максимизировали нашу прибыль. Очевидно, что существует решение алгоритма за O (n 2...

122
Найдите пару элементов из массива, сумма которых равна заданному числу

Дан массив из n целых чисел и задано число X. Найдите все уникальные пары элементов (a, b), сумма которых равна X. Следующее - мое решение, это O (nLog (n) + n), но я не уверен, оптимально оно или нет. int main(void) { int arr [10] = {1,2,3,4,5,6,7,8,9,0}; findpair(arr, 10, 7); } void findpair(int...

121
Как именно работает хвостовая рекурсия?

Я почти понимаю, как работает хвостовая рекурсия и чем она отличается от обычной. Я только не понимаю, почему не требуется, чтобы стек запомнил свой адрес возврата. // tail recursion int fac_times (int n, int acc) { if (n == 0) return acc; else return fac_times(n - 1, acc * n); } int factorial (int...