Skip to main content

6 docs tagged with "Paradigms"

View all tags

Backtracking

Backtracking is an algorithmic paradigm used to solve problems in which the number of possible candidate solutions is very large, but many of those candidates can be discarded early because they violate some constraint. The central idea is simple: construct a solution step by step, and as soon as a partial solution cannot possibly lead to a valid complete solution, abandon it and return to the previous step.

Branch and Bound

When solving hard combinatorial problems, Backtracking provides an exact solution by executing a systematic Depth-First Search (DFS). However, it does so blindly, relying entirely on hitting an unfeasible boundary before turning around.

Brute Force & Exhaustive Search

When facing a novel computational problem, our immediate priority as engineers is not performance, but correctness. Before we can optimize a solution, we must prove that the problem is solvable.

Divide and Conquer

The Divide and Conquer (D&C) paradigm represents one of the most powerful systemic strategies in algorithm design. Instead of attacking a complex computational problem globally, this approach structurally breaks down problem instances into smaller, homogeneous variants. It fundamentally shifts execution from complex global management to localized resolution and structural combination.

Dynamic Programming

The Dynamic Programming (DP) paradigm stands as one of the most advanced and elegant optimization frameworks in Computer Science. Its core engineering philosophy can be summarized by a classic software axiom: those who cannot remember the past are condemned to repeat it.

Greedy Algorithms

Unlike general programming strategies that explore multiple alternative paths, Greedy Algorithms are designed strictly for optimization problems where the goal is to maximize or minimize a specific objective function.