Вопросы с тегом 'algorithm'

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

Каков наиболее эффективный/элегантный способ разбора плоского стола в дерево?

Предположим, что у вас есть плоская таблица, в которой хранится упорядоченная иерархия дерева: Id Name ParentId Order 1 'Node 1' 0 10 2 'Node 1.1' 1 10 3 'Node 2' 0 20 4 'Node 1.1...
10 окт. '08 в 19:47
27 отв.

Каков наиболее эффективный способ для плавающего и двойного сравнения?

Каким будет наиболее эффективный способ сравнить два значения double или два float? Просто это неправильно: bool CompareDoubles1 (double A, double B) { return A == B; } Но что-то вроде: bool CompareDoubles2 (double A, double B) { diff = ...
20 авг. '08 в 5:09
5 отв.

Что такое алгоритм Hi/Lo?

Что такое алгоритм Hi/Lo? Я нашел это в документации NHibernate (это один способ генерации уникальных ключей, раздел 5.1.4.2), но я не нашли хорошего объяснения того, как это работает. Я знаю, что Nhibernate обрабатывает его, и мне не нужно знать в...
11 нояб. '08 в 23:53
12 отв.

Как заменить все вхождения символа в строке?

Каков эффективный способ заменить все вхождения символа другим символом в std::string?
24 мая '10 в 14:30
10 отв.

Почему Java hashCode() в String использует 31 как множитель?

Согласно документации Java, хеш-код для объекта String вычисляется как: s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] используя int арифметику, где s[i] - i- й символ строки, n - длина строки, а ^ возведение в степень. Почему 31 используется в ка...
18 нояб. '08 в 19:39
16 отв.

Как можно построить кучу O (n) сложности времени?

Может кто-нибудь объяснить, как построить кучу O (n) сложности? Вставка элемента в кучу O(log n), а вставка повторяется n/2 раза (остальные - листья и не могут нарушать свойство кучи). Таким образом, это означает, что сложность должна быть O(n log ...
18 марта '12 в 6:15
48 отв.

Создание всех перестановок заданной строки

Что такое элегантный способ найти все перестановки строки. Например. ba, будет ba и ab, но как насчет abcdefgh? Есть ли пример реализации Java?
21 нояб. '10 в 23:11
6 отв.

Эффективность чисто функционального программирования

Кто-нибудь знает, что является наихудшим возможным асимптотическим замедлением, которое может произойти при программировании чисто функционально, а не в императивном (то есть разрешении побочных эффектов)? Разъяснение из комментария itowlson: есть л...
02 янв. '10 в 6:02
24 отв.

Самый быстрый тип фиксированной длины 6 int array

Отвечая на другой вопрос (этот), я наткнулся на интересную подзадачу. Какой самый быстрый способ сортировки массива из 6 целых чисел? Как вопрос очень низкого уровня: мы не можем предполагать, что библиотеки доступны (и сам вызов имеет свою стоимо...
07 мая '10 в 10:24
18 отв.

Как Google "Вы имели в виду?" Алгоритм работает?

Я разрабатываю внутренний веб-сайт для инструмента управления портфелем. Существует много текстовых данных, названий компаний и т.д. На меня действительно впечатлили способность поисковых систем очень быстро реагировать на запросы с помощью "Вы имели...
21 нояб. '08 в 2:34
24 отв.

Как определить цикл в связанном списке?

Скажем, у вас есть связанная структура списка в Java. Он состоит из узлов: class Node { Node next; // some user data } и каждый Node указывает на следующий node, за исключением последнего node, который имеет значение null для следующего. ...
18 апр. '10 в 20:08
35 отв.

Как найти список возможных слов из матрицы букв [Boggle Solver]

В последнее время я играю в игру на своем iPhone под названием Scramble. Некоторые из вас могут знать эту игру как Boggle. По сути, когда игра начинается, вы получаете матрицу букв примерно так: F X I E A M L O E W B X A S T U Цель игры - найти ка...
14 апр. '09 в 5:11
9 отв.

Сравнение изображений - быстрый алгоритм

Я хочу создать базовую таблицу изображений, а затем сравнить любые новые изображения с этим, чтобы определить, является ли новое изображение точным (или близким) дубликатом базы. Например: если вы хотите уменьшить память одного и того же изображения...
09 мая '09 в 23:18
19 отв.

Как реализовать очередь с использованием двух стеков?

Предположим, что у нас есть два стека и никакая другая временная переменная. Можно ли "построить" структуру данных очереди, используя только два стека?
16 сент. '08 в 6:37
42 отв.

Лучший способ изменить строку

Мне просто пришлось написать строчную обратную функцию в С# 2.0 (т.е. LINQ недоступно) и придумал следующее: public string Reverse(string text) { char[] cArray = text.ToCharArray(); string reverse = String.Empty; for (int i = cArray.Leng...
23 окт. '08 в 3:31