algorithm- все статьи тега ➜ страница 5


Существуют ли какие-либо худшие алгоритмы сортировки, чем Bogosort (он же Обезьянья сортировка)? [закрытый]

мои коллеги вернули меня во время моих университетских дней с обсуждением алгоритмов сортировки сегодня утром. Мы вспоминали о наших фаворитах, как StupidSort, и один из нас был уверен, что мы видели алгоритм сортировки, который был O(n!). Это заставило меня начать искать "худшие" алгоритмы сортировки, которые я мог найти. мы постулировали, что совершенно случайный вид будет довольно плохим (т. е. рандомизировать элементы - это в порядке? нет? снова перемешайте ), и я огляделся и обнаружил ...

Установите для каждой ячейки матрицы значение 0, если эта строка или столбец содержит 0

Дана матрица N х n с 0s и 1S. Набор каждой строки, содержащей 0 для всех 0s и установите каждый столбец, содержащий 0 для всех 0 s. 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 результаты 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 инженер Microsoft сказал мне, что есть решение, которое не требует дополнительной памяти, просто две булевы переменные и один проход, поэтому я ищу этот ответ. кстати, представьте, что это битовая матрица, поэтому только 1s и 0s являются позвольте ...

Как сделать округленные проценты добавить до 100%

рассмотрим четыре процента ниже, представленные как float номера: 13.626332% 47.989636% 9.596008% 28.788024% ----------- 100.000000% мне нужно представить эти проценты как целые числа. Если я просто использую Math.round(), Я в конечном итоге в общей сложности 101%. 14 + 48 + 10 + 29 = 101 если я использую parseInt(), Я в конечном итоге в общей сложности 97%. 13 + 47 + 9 + 28 = 97 каков хороший алгоритм для представления любого количества процентов в виде целых ч ...

Что именно представляет собой большая not нотация?

Я действительно запутался в различиях между big O, big Omega и big Theta notation. Я понимаю, что big O-это верхняя граница, а big Omega-нижняя граница, но что именно представляет big Ө (тета)? Я читал, что это означает туго связан, но что это значит? ...

Что такое стабильность в алгоритмах сортировки и почему это важно?

Мне очень любопытно, почему стабильность важна или не важна в алгоритмах сортировки? ...

Каков метод преобразования радианов в градусы?

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

Поиск значения max/min в массиве примитивов с помощью Java

это тривиально, чтобы написать функцию для определения минимального/максимального значения в массиве, например: /** * * @param chars * @return the max value in the array of chars */ private static int maxValue(char[] chars) { int max = chars[0]; for (int ktr = 0; ktr < chars.length; ktr++) { if (chars[ktr] > max) { max = chars[ktr]; } } return max; } но разве это уже сделано где-то? ...

Петля по спирали

друг нуждался в алгоритме, который позволил бы ему перебирать элементы матрицы NxM (N и M нечетны). Я придумал решение, но я хотел посмотреть, могут ли мои коллеги SO'ERS придумать лучшее решение. Я публикую свое решение в качестве ответа на этот вопрос. Пример: для матрицы 3x3 выход должен быть: (0, 0) (1, 0) (1, 1) (0, 1) (-1, 1) (-1, 0) (-1, -1) (0, -1) (1, -1) кроме того, алгоритм должен поддерживать неквадратичные матрицы, поэтому, например, для матрицы 5x3 выход должен быть: (0, 0) ...

Сортировать точки по часовой стрелке?

учитывая массив точек x, y, как отсортировать точки этого массива по часовой стрелке (вокруг их общей средней центральной точки)? Моя цель-передать точки в функцию создания линий, чтобы в конечном итоге что-то выглядело довольно "твердым", как можно более выпуклым без пересечения линий. для чего это стоит, я использую Lua, но любой псевдокод будет оценен по достоинству. Большое спасибо за любую помощь! обновление: для справки, это Lua код, основанный на отличном ответе Ciamej (игнорируйте мой ...

Объясните, как найти узел запуска цикла в цикле связанного списка работы?

Я понимаю, что встреча черепахи и Зайца завершает существование цикла, но как перемещение черепахи в начало связанного списка, сохраняя зайца в месте встречи, а затем перемещая оба шага за раз, заставляет их встречаться в начальной точке цикла? ...

Выбрать N случайных элементов из списка в C#

Мне нужен быстрый алгоритм для выбора 5 случайных элементов из общего списка. Например, я хотел бы получить 5 случайных элементов из List<string>. ...

Пузырь Сортировать Домашнее Задание

в классе мы делаем алгоритмы сортировки и, хотя я прекрасно понимаю их, когда говорю о них и пишу псевдокод, у меня возникают проблемы с написанием фактического кода для них. Это моя попытка в Python: mylist = [12, 5, 13, 8, 9, 65] def bubble(badList): length = len(badList) - 1 unsorted = True while unsorted: for element in range(0,length): unsorted = False if badList[element] > badList[element + 1]: hold = badList[element + 1] ...

Быстрый способ, чтобы сгладить и выровнять вложенные JSON-объекты

Я бросил некоторый код вместе, чтобы сгладить и расплющить сложные/вложенные объекты JSON. Это работает, но это немного медленно (запускает длинный скрипт предупреждение). для сплющенных имен я хочу "."как разделитель и [индекс] для массивов. примеры: un-flattened | flattened --------------------------- {foo:{bar:false}} => {"foo.bar":false} {a:[{b:["c","d"]}]} => {"a[0].b[0]":"c","a[0].b[1]":"d"} [1,[2,[3,4],5],6] => {"[0]":1,"[1].[0]":2,"[1].[1].[0]":3,"[1].[1].[1]":4,"[1].[2]":5," ...

быстрый способ скопировать один вектор в другой

Я предпочитаю два способа: void copyVecFast(const vec<int>& original) { vector<int> newVec; newVec.reserve(original.size()); copy(original.begin(),original.end(),back_inserter(newVec)); } void copyVecFast(vec<int>& original) { vector<int> newVec; newVec.swap(original); } Как вы это делаете? ...

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

Как проверить, является ли число палиндромом? любой язык. Любой алгоритм. (за исключением алгоритма превращения числа в строку, а затем реверсирования строки). ...

Алгоритм Графа Для Нахождения Всех Связей Между Двумя Произвольными Вершинами

Я пытаюсь определить наилучший алгоритм эффективного времени для выполнения задачи, описанной ниже. у меня есть набор записей. Для этого набора записей у меня есть данные соединения, которые указывают, как пары записей из этого набора соединяются друг с другом. Это в основном представляет собой неориентированный граф, причем записи являются вершинами, а данные соединения-ребрами. все записи в наборе есть информацию о соединении (т. е. нет бесхозных записей присутствует; каждая запись в наборе ...

Как эффективно построить дерево из плоской конструкции?

у меня есть куча объектов в плоскую структуру. Эти объекты имеют ID и ParentID свойство, так что они могут быть расположены в деревьях. Они не находятся в определенном порядке. Каждый ParentID свойство не обязательно совпадает с ID в структуре. Поэтому их может быть несколько деревьев, выходящих из этих объектов. как бы вы обработали эти объекты для создания результирующих деревьев ? Я не так далеко от решения, но я уверен это далеко не оптимально... мне нужно создать эти деревья, чтобы затем ...

Каков наилучший алгоритм для проверки, является ли число простым?

просто пример того, что я ищу: я мог бы представить каждое нечетное число с битом, например, для данного диапазона чисел (1, 10], начинается с 3: 1110 следующий словарь можно сжать более правильно? Я мог бы выделить кратные пять с некоторой работой, но числа, которые заканчиваются 1, 3, 7 или 9, должны быть там в массиве битов. Надеюсь, это прояснит то, что я хочу. Я ищу лучший алгоритм, чтобы проверить, является ли число простым, т. е. булева функция: bool isprime(number); Я хотел бы зна ...

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

я почти понимаю, как работает хвостовая рекурсия и разница между ней и нормальной рекурсией. Я только не понимаю, почему это не требуется стек, чтобы помнить свой обратный адрес. // 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 n) { return fac_times (n, 1); } // normal recursion int factorial (int n) { if (n == 0) return 1; else return n * factorial(n - 1); } после вызова самой функции ...

Алгоритм поиска 10 лучших поисковых терминов

в настоящее время я готовлюсь к интервью, и это напомнило мне о вопросе, который мне однажды задали в предыдущем интервью, который звучал примерно так: " вас попросили разработать некоторое программное обеспечение для непрерывного отображения 10 лучших поисковых запросов в Google. Вам предоставляется доступ к каналу, который обеспечивает бесконечный поток в режиме реального времени поисковых запросов в настоящее время осуществляется в Google. Опишите, какой алгоритм и структуры данных вы бы ис ...