Який алгоритм працює за принципом «розділяй і володарюй»?

Техніка «розділяй і володарюй» є основою ефективних алгоритмів для багатьох проблем, таких як сортування (наприклад, швидке сортування, сортування злиттям), множення великих чисел (наприклад, алгоритм Карацуби), пошук найближчої пари точок, синтаксичний аналіз (наприклад, парсери зверху вниз) і обчислення дискретного перетворення Фур’є…

Сортування злиттям Сортування злиттям це алгоритм сортування, який слідує підходу «Розділяй і володарюй». Він сортує масив, розділяючи його на дві половини, рекурсивно сортуючи кожну половину, а потім об’єднуючи дві відсортовані половини, щоб створити остаточний відсортований масив.');})();(function(){window.jsl.dh(' oKDsZtvNGILS1e8PnN3c-AQ__22','

Алгоритм «Розділяй і володарюй» складається з двох частин: «Розділяй»: розділіть проблему на кілька підпроблем. Підзадачі вирішуються рекурсивно. Conquer: рішення вихідної проблеми формується з розв’язків підпроблем (з’єднання відповідей).

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

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

  1. Отримавши список для сортування, розділіть його на два або більше менших списків.
  2. Рекурсивно запустіть алгоритм сортування для кожного меншого списку окремо.
  3. Об’єднайте відсортовані результати кожного рекурсивного виклику в один відсортований список.

Обидва сортування злиттям і швидке сортування використовувати загальну алгоритмічну парадигму, засновану на рекурсії. Ця парадигма «розділяй і володарюй» розбиває проблему на підпроблеми, подібні до вихідної проблеми, рекурсивно вирішує підпроблеми та, нарешті, об’єднує розв’язки підпроблем для вирішення вихідної проблеми.