A divide-and-conquer algorithm works by recursively splitting a problem into smaller sub-problems until each problem can be directly solved.