An effective method, finite n of steps or instructions, to solve a problem or accomplish a task
always works
three steps:
Divide problem of size n into number of subproblems of same type and about same size
Conquer: recursively solve sub-problems
Combine: appropriately combine solutions
examples: binary search, merge sort, quick sort