ScholarGate
Ассистент

Разделяй и властвуй

«Разделяй и властвуй» — это парадигма разработки алгоритмов, которая решает проблему, разбивая ее на более мелкие подзадачи того же типа, решая их рекурсивно и объединяя их решения в решение для исходной проблемы.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

Алгоритм «разделяй и властвуй» рекурсивно разбивает проблему на две или более подпроблемы того же или связанного типа до тех пор, пока подпроблемы не станут достаточно простыми для непосредственного решения, а затем объединяет решения подпроблем для получения ответа на исходную проблему.

Scope

Эта тема охватывает трехэтапную структуру алгоритмов «разделяй и властвуй» (разделение, решение, объединение), канонические примеры, такие как сортировка слиянием, быстрая сортировка, двоичный поиск и быстрое умножение целых чисел и матриц, а также анализ их времени выполнения на основе рекуррентных соотношений. Она тесно связана с основной теоремой и методами решения рекуррентных соотношений, используемыми для анализа таких алгоритмов.

Core questions

  • Как проблема декомпозируется так, чтобы подпроблемы были независимыми и имели ту же форму?
  • Какая работа выполняется на этапе объединения и как это влияет на общую стоимость?
  • Как решаются полученные рекуррентные соотношения для получения асимптотического времени выполнения?
  • Когда принцип «разделяй и властвуй» превосходит прямолинейный итеративный подход?

Key concepts

  • разделяй, решай, объединяй
  • рекуррентные соотношения
  • основная теорема
  • сортировка слиянием
  • быстрая сортировка
  • двоичный поиск
  • умножение Карацубы
  • умножение матриц Штрассена

Key theories

Основная теорема для рекуррентных соотношений
Основная теорема дает асимптотические решения в замкнутой форме для рекуррентных соотношений типа «разделяй и властвуй» вида T(n) = aT(n/b) + f(n) путем сравнения стоимости рекурсивных подпроблем со стоимостью объединения f(n).
Субквадратичное умножение через декомпозицию
Рекурсивное разбиение операндов и уменьшение количества рекурсивных умножений (как в умножении Карацубы и умножении матриц Штрассена) приводит к асимптотически более быстрым алгоритмам, чем наивные квадратичные и кубические методы.

Clinical relevance

Принцип «разделяй и властвуй» лежит в основе многих наиболее широко используемых алгоритмов: эффективная сортировка (сортировка слиянием, быстрая сортировка) в стандартных библиотеках, двоичный поиск в процедурах поиска, быстрое преобразование Фурье в обработке сигналов и изображений, а также быстрое умножение, используемое в криптографии и арифметике произвольной точности.

History

Сортировка слиянием приписывается Джону фон Нейману (1945). К. А. Р. Хоар опубликовал быструю сортировку в 1962 году. Субквадратичное умножение Карацубы 1960 года и алгоритм умножения матриц Штрассена 1969 года продемонстрировали, что рекурсивное разложение может превзойти классические границы, помогая утвердить принцип «разделяй и властвуй» как фундаментальную парадигму.

Key figures

  • C. A. R. Hoare
  • John von Neumann
  • Anatoly Karatsuba
  • Volker Strassen

Related topics

Seminal works

  • hoare1962
  • cormen2009

Frequently asked questions

Почему сортировка слиянием имеет сложность O(n log n)?
Сортировка слиянием делит массив на две половины (log n уровней рекурсии) и на каждом уровне выполняет слияние всех элементов за линейное время, что дает рекуррентное соотношение T(n) = 2T(n/2) + O(n), которое основная теорема решает как O(n log n).
Является ли быстрая сортировка алгоритмом «разделяй и властвуй», даже если у нее нет явного шага объединения?
Да. Быстрая сортировка выполняет основную работу на этапе разделения путем разбиения вокруг опорного элемента; как только две части рекурсивно отсортированы, работа по объединению не требуется. Парадигма позволяет основной части усилий приходиться на любую из трех фаз.

Methods for this concept

Related concepts