# Algorithmic paradigms and design patterns

## Divide and conquer

- Decompose and combine
- Divide - conquer - combine
- eg. Merge sort

## Dynamic programming

- Name?? - Decompose and overlap
- Can be seen as a special D&C where caching is applied.
- Gives an optimised solution - reuse previous solutions.
- eg. Knapsack, Fibonacci

wiki | challenges | patterns

## Greedy

- never reconsiders
- reduce problem into a small one with each step
- eg. Coin problem, Kruskal's algorithm

## Backtracking

## Design patterns

Updated 02 January 2023