Разделяй и властвуй

Задача делится на части, решается рекурсивно и собирается.

Сигнатурачасто O(n log n)

Разделяй и властвуй — это стратегия из трёх шагов: разделить задачу на подзадачи, решить каждую рекурсивно и объединить результаты. По ней построены сортировка слиянием, быстрая сортировка и бинарный поиск.

Сложность: часто O(n log n) благодаря логарифмическому числу уровней рекурсии; точная оценка выводится из основной теоремы о рекуррентах. Память: O(log n) и выше на стек.

def max_divide(a):
    if len(a) == 1:
        return a[0]
    mid = len(a) // 2
    left = max_divide(a[:mid])
    right = max_divide(a[mid:])
    return left if left > right else right

print(max_divide([3, 9, 2, 7]))  # 9
← Все записи: Алгоритмы и структуры данных
Поддержать проект