Рандомизированный и рекурсивный алгоритм
Рандомизированные алгоритмы включают в свою логику ощущение случайности, делая случайный выбор во время выполнения алгоритма. Из-за этой случайности поведение алгоритма может измениться даже для фиксированного ввода. Для многих проблем рандомизированные алгоритмы предоставляют самые простые и эффективные решения. Рекурсивные алгоритмы основаны на идее, что решение проблемы может быть найдено путем поиска решений более мелких подзадач той же проблемы. Рекурсия широко используется для поиска решений проблем в информатике, и многие языки программирования высокого уровня поддерживают рекурсию.
Что такое рандомизированный алгоритм?
Рандомизированные алгоритмы включают ощущение случайности, делая случайный выбор, который направляет выполнение алгоритма. Обычно это делается путем использования набора случайных чисел, сгенерированных генератором псевдослучайных чисел, в качестве дополнительных входных данных. Из-за этого поведение алгоритма может измениться даже для фиксированного входа. Быстрая сортировка - широко известный алгоритм, который использует концепцию случайности и имеет время работы O (n log n) независимо от входных свойств. Кроме того, для построения таких конструкций, как выпуклый корпус, в расчетной геометрии используется метод рандомизированного инкрементального строительства. В этом методе входные точки случайным образом меняются местами, а затем одна за другой вставляются в структуру. Реализовать рандомизированный алгоритм относительно просто, чем реализовать детерминированный алгоритм для той же проблемы. Самая большая проблема при разработке рандомизированного алгоритма заключается в выполнении асимптотического анализа временной и пространственной сложности.
Что такое рекурсивный алгоритм?
Рекурсивные алгоритмы основаны на идее, что решение проблемы может быть найдено путем поиска решений более мелких подзадач той же проблемы. В рекурсивном алгоритме функция определяется в терминах более ранней версии самой себя. Важно отметить, что эта ссылка на себя должна иметь условие завершения, чтобы избежать постоянной ссылки на себя. Условие завершения проверяется перед обращением к самому себе. Начальный шаг рекурсивного алгоритма связан с основным предложением рекурсивного определения проблемы. Шаги, которые следуют за начальным шагом, связаны с индуктивными пунктами проблемы. Рекурсивные алгоритмы обеспечивают более простое решение во многих ситуациях и ближе к естественному образу мышления, чем итерационный алгоритм для той же проблемы. А вообще,рекурсивные алгоритмы требуют больше памяти и требуют больших вычислительных ресурсов.
В чем разница между рандомизированным и рекурсивным алгоритмами?
Случайные алгоритмы - это алгоритмы, которые используют ощущение случайности, делая случайный выбор, который может повлиять на выполнение алгоритма, в то время как рекурсивные алгоритмы - это алгоритмы, основанные на идее, что решение проблемы может быть найдено путем поиска решений более мелких подзадач. той же проблемы. Из-за случайности в случайных алгоритмах поведение алгоритма может измениться даже для одного и того же входа (в разных исполнениях алгоритма). Но это невозможно в рекурсивных алгоритмах, и поведение рекурсивного алгоритма будет таким же для фиксированного ввода.