Если я правильно понимаю вашу проблему ..
Все ли алгоритмы «разделяй и властвуй» рекурсивны по своей природе? Да!
По определению
Существует три этапа применения алгоритма «разделяй и властвуй» на практике:
- Разделите проблему на одну или несколько подзадач.
- Завоевать подзадачи, решая их рекурсивно . Если подзадача
размеры достаточно малы, однако, просто решить подзадачи в
прямолинейно.
- Объедините решения подзадач в решение для
исходная задача.
Но если вас интересует часть реализации ... тогда рекурсия (хотя и более элегантная и простая) - не единственный способ.
Бинарный поиск - это хорошо известный пример парадигмы «разделяй и властвуй», и здесь приводится итеративная реализация алгоритма.
//binary search for x, in array A[1 .. N]
min := 1;
max := N;
repeat
mid := (min+max) div 2;
if x > A[mid] then
min := mid + 1;
else
max := mid - 1;
until (A[mid] = x) or (min > max);