Это на самом деле O(n)
- чтобы выяснить, почему вы должны анализировать дерево рекурсии вашего алгоритма и сколько операций выполняется на каждом шаге.
Анализировать количество операций просто, вы делаетепростое сравнение между двумя терминами, то есть O (1), теперь нам нужно выяснить, сколько раз вызывается рекурсивная функция.
Оказывается, что это также просто, вы вызываете find наименьший для всего левогои правый подмассив, так что сначала у вас есть 1 сравнение, затем у вас есть 2, затем 4, пока у вас не будет n сравнений.
n + n/2 + n/4 ... = 2*n = O(n)