Розділяй та володарюй (інформатика)

«Розділя́й та володарю́й» (англ. divide and conquer) в інформатиці — важлива парадигма розробки алгоритмів, що полягає в рекурсивному розбитті розв'язуваної задачі на дві або більше підзадачі того ж типу, але меншого розміру, і комбінуванні їх розв'язків для отримання відповіді до вихідного завдання. Розбиття виконуються доти, поки всі підзавдання не стануть елементарними.

Приклади ред.

 
Розділяй і володарюй підхід для сортування списку (38, 27, 43, 3, 9, 82, 10) у порядку зростання. Верхня половина: поділ на підсписки; середина: одноелементний список тривіально сортується; нижня половина: створення відсортованих підсписків.

Типовий приклад — алгоритм сортування злиттям. Щоб відсортувати масив чисел за зростанням, його розбивають на дві рівні частини; кожну сортують, потім відсортовані частини зливають в одну. Ця процедура застосовується до кожної з частин доти, поки сортовані частини масиву містять хоча б два елементи (щоб можна було її розбити на дві частини).

Час роботи цього алгоритму складає   операцій, тоді як простіші алгоритми вимагають   часу, де   — розмір вихідного масиву.

Інші приклади важливих алгоритмів, в яких застосовується парадигма «розділяй та володарюй»:

Див. також ред.

Посилання ред.

  • Алгоритмы «разделяй и властвуй». «Жадный» алгоритм (рос.)[недоступне посилання з липня 2019]
  • Кормен, Томас; Лейзерсон, Чарльз; Рівест, Рональд; Стайн, Кліфорд (2019). Вступ до алгоритмів (вид. 3). К.І.С. ISBN 978-617-684-239-2. {{cite book}}: Cite має пустий невідомий параметр: |1= (довідка)