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

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

4
Зачем использовать алгоритм Дейкстры, если поиск в ширину (BFS) может сделать то же самое быстрее?
Оба могут использоваться для поиска кратчайшего пути из одного источника. BFS вбегает O(E+V), а Дейкстра вбегает O((V+E)*log(V)). Кроме того, я видел, как Дейкстра очень часто используется в протоколах маршрутизации. Таким образом, зачем использовать алгоритм Дейкстры, если BFS может делать то же самое быстрее?

20
Сортировка вставкой и сортировка по выбору
Я пытаюсь понять разницу между сортировкой вставкой и сортировкой по выбору. Кажется, что они оба состоят из двух компонентов: несортированного списка и отсортированного списка. Кажется, что они оба берут один элемент из несортированного списка и помещают его в отсортированный список в нужное место. Я видел некоторые сайты / книги, в …

27
Есть ли идеальный алгоритм для шахмат? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить с помощью фактов и цитат, отредактировав этот пост . Закрыт в прошлом году . Уточните этот вопрос Недавно я обсуждал с человеком, не …

30
Как перевернуть односвязный список, используя только два указателя?
Интересно, существует ли какая-то логика для изменения односвязного списка с использованием только двух указателей. Ниже используется для изменения одного связанного списка с использованием трех указателей , а именно p, q, r: struct node { int data; struct node *link; }; void reverse() { struct node *p = first, *q = …

13
Быстрая сортировка: выбор точки поворота
При внедрении быстрой сортировки вам необходимо выбрать точку поворота. Но когда я смотрю на псевдокод, подобный приведенному ниже, неясно, как мне выбрать точку опоры. Первый элемент списка? Что-то другое? function quicksort(array) var list less, greater if length(array) ≤ 1 return array select and remove a pivot value pivot from array …

10
рекурсия против итерации
Можно ли сказать, что везде, где используется рекурсия, можно использовать forцикл? И если рекурсия обычно медленнее, в чем техническая причина ее использования при forповторении цикла? И если всегда можно преобразовать рекурсию в forцикл, есть ли практический способ сделать это?

5
В чем преимущество использования фильтров Блума?
Я читаю фильтры Блума, и они кажутся глупыми. Все, что вы можете сделать с помощью фильтра цветения, вы можете сделать с меньшим объемом пространства и более эффективно, используя одну хеш-функцию, а не несколько, или это то, что кажется. Зачем использовать фильтр цветения и чем он полезен?

30
Подсчет инверсий в массиве
Я разрабатываю алгоритм, чтобы сделать следующее: Для заданного массива A[1... n]для каждого i < jнайти все пары инверсии, такие что A[i] > A[j]. Я использую сортировку слиянием и копирую массив A в массив B, а затем сравниваю два массива, но мне трудно понять, как я могу использовать это, чтобы найти …
108 algorithm 


16
Как лучше всего получить все делители числа?
Вот самый тупой способ: def divisorGenerator(n): for i in xrange(1,n/2+1): if n%i == 0: yield i yield n Результат, который я хотел бы получить, похож на этот, но мне нужен более умный алгоритм (он слишком медленный и тупой :-) Я могу найти простые множители и их кратность достаточно быстро. У …
108 python  algorithm  math 


14
Совмещенная область перекрывающихся кругов
Недавно я столкнулся с проблемой, когда у меня было четыре круга (средние точки и радиус), и мне нужно было вычислить площадь объединения этих кругов. Пример изображения: Для двух кругов это довольно просто, Я могу просто вычислить долю площади каждого круга, которая не находится внутри треугольников, а затем вычислить площадь треугольников. …
107 algorithm  geometry  area 

2
Объяснение сегментации изображений с использованием среднего сдвига
Может ли кто-нибудь помочь мне понять, как на самом деле работает сегментация среднего сдвига? Вот матрица 8x8, которую я только что составил 103 103 103 103 103 103 106 104 103 147 147 153 147 156 153 104 107 153 153 153 153 153 153 107 103 153 147 96 …

9
Где я могу найти «полезный» алгоритм двоичного поиска C ++?
Мне нужен алгоритм двоичного поиска, совместимый с контейнерами C ++ STL, что-то вроде заголовка std::binary_searchстандартной библиотеки <algorithm>, но мне нужно, чтобы он возвращал итератор, указывающий на результат, а не простое логическое значение, сообщающее мне, существует ли элемент. (Кстати, о чем, черт возьми, думал стандартный комитет, когда определяли API для binary_search …

17
Как найти k-й наименьший элемент в объединении двух отсортированных массивов?
Это вопрос домашнего задания. Они говорят, что принимает O(logN + logM)где Nи Mявляются длинами массивов. Назовем массивы aи b. Очевидно, мы можем игнорировать все a[i]и b[i]где i> k. Сначала сравним a[k/2]и b[k/2]. Пусть b[k/2]> a[k/2]. Поэтому мы можем отбросить и все b[i], где i> k / 2. Теперь у нас …

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