RePublic of CS
  • INFO
    • ❔What is RePublic of CS?
    • πŸ—ΊοΈRCS Open Course
    • πŸ›οΈRCS Classroom
    • πŸ‘©β€πŸŒΎRCS Forum (soon)
    • 🌟RCS Mentors
    • πŸ™‹ε¦‚δ½•εƒθˆ‡ε­ΈηΏ’οΌŸ
      • ⏳RCS.101 x Miters (24 Q2)
  • βš’οΈRCS.101
    • Β§ DSA In Action
    • RCS.101.a
    • RCS.101.b
    • RCS.101.c
    • RCS.101.d
    • ΒΆ Graduation
      • Apx: BFS/Shortest Path
      • Apx: Classic Applications
      • Apx: Techniques & Tricks
      • Apx: Morris Traversal
      • Apx: RCS.101 x Miters W6
      • Apx: In-place Merge Sort
  • πŸ“šRCS.102
    • Β§ Algorithm Design & Analysis
    • βŒ› Divide & Conquer
    • βŒ› Recursion
  • 🧡RCS.103
    • Β§ SYS/PARL Programming
  • πŸ¦€RCS.201
    • Β§ Rust
  • 🧱RCS.301
    • Β§ Software Architecture
  • 🏰RCS.302
    • Β§ Web System Design
  • πŸ“£MEDIA
    • YouTube
    • Twitch
    • Threads
    • Discord Forum
    • Become an Editor
    • Resources
  • πŸ“œArticles
    • System Design, Actually
Powered by GitBook
On this page
  • Practices
  • Graduation Challenge
  1. RCS.102

βŒ› Divide & Conquer

PreviousΒ§ Algorithm Design & AnalysisNextβŒ› Recursion

Last updated 1 year ago

In , divide and conquer is an . A divide-and-conquer breaks down a problem into two or more sub-problems of the same or related type, until these become simple enough to be solved directly. The solutions to the sub-problems are then combined to give a solution to the original problem

The divide-and-conquer technique is the basis of efficient algorithms for many problems, such as (e.g., , ), (e.g., the ), finding the , (e.g., ), and computing the ().

Designing efficient divide-and-conquer algorithms can be difficult. As in , it is often necessary to generalize the problem to make it amenable to a recursive solution. The correctness of a divide-and-conquer algorithm is usually proved by mathematical induction, and its computational cost is often determined by solving .

Related

  • , Transform and Conquer

Learning Material (understanding classic instances of Divide & Conquer)

  • (introduces Karatsuba & O(nlog⁑n)O(n\log n)O(nlogn) Multiplication)

Practices

Graduation Challenge

computer science
algorithm design paradigm
algorithm
recursively
sorting
quicksort
merge sort
multiplying large numbers
Karatsuba algorithm
closest pair of points
syntactic analysis
top-down parsers
discrete Fourier transform
FFT
[1]
mathematical induction
recurrence relations
Decrease and Conquer
UCB CS170 [1] Introduction, Big-O Notation, Arithmetic
UCB CS170 [2] Divide-and-Conquer (Part 1)
UCB CS170 [3] Divide-and-Conquer (Part 2)
VFMUL - Very Fast Multiplication
Divide-and-Conquer
πŸ“š
Page cover image