Изменения
→Оптимизация алгоритма
Такая модификация алгоритма выдает правильный ответ с точностью, не менее <tex>\frac{1}{\log(n)}</tex>. Время работы функции <tex>\mathrm{getCut}</tex> вычисляется рекурсивной функцией:
<tex>T(n) = O(n^2) + 2 * T(n/\sqrt{2}) = O(n^2\log(n))</tex>.
Это медленнее, чем оригинальный алгоритм, однако вероятность нахождения разреза минимального веса экспоненциально выше. Достаточно запустить алгоритм <tex>c\log^2(n)</tex> раз, где <tex>c</tex> - некоторая константа. Действительно, рассчитаем вероятность неправильного ответа также, как раньше: