4 года назад
Вычисление асимптотической сложности алгоритма Часть I. Основные понятия.
Нередко, читая описание какого либо алгоритма можно наткнуться на вычисление его асимптотической сложности, для новичка не всегда понятно что это такое. В данной статье мы дадим точное определение и разберем наиболее частые виды асимптотической сложности, а во второй части, которая выйдет завтра познакомимся с правилами ее вычисления. Асимптотическая сложность (производительность) алгоритма определяется функцией, которая указывает, насколько ухудшается работа алгоритма с усложнением поставленной задачи...
286 читали · 4 года назад
Задача 527. Алгоритм Евклида
А теперь к настоящим алгоритмам, а не использованию уже написанных в стандартной библиотеке. Читаем условие задачи: Алгоритм Евклида - это, действительно, эффективный способ вычисления наибольшего общего делителя двух чисел. Но та версия, которую изучил Дима из условия задачи является неоптимальной. Давайте посмотрим на примере. Если даны два числа 1000000 и 12, то шаг 4 будет выполняться очень много раз (83333), после чего a будет равно 4, а b - 12 (затем, они, конечно, поменяются местами). На примере мы можем заметить, что 1000000 = 83333 * 12 + 4, или в общем виде a = k * b + r...