~ / projects / algorithms-analysis

Design and Analysis of Algorithms

Four optimization problems, each solved several ways (dynamic programming, backtracking, divide and conquer, greedy) with a complexity analysis of every attempt.

Four optimization problems solved from scratch, where the goal was not just a working solution but a refined one: start from a brute-force baseline, prove it correct, then design faster algorithms and analyze the time and space cost of each attempt.

The problems cover a range of scenarios: minimizing purchase costs when prices change over time, equalizing lists through interval operations, transforming one list into another in the fewest steps, and finding minimum-cost set partitions.

Each problem uses a different mix of strategies (dynamic programming, recursive backtracking, divide and conquer, and greedy heuristics), and each comes with a written report on the reasoning, the correctness arguments, and how the approaches compare in complexity.

All code is Python, one folder per problem with its implementation and a full PDF analysis.

FACTS

Category: algorithms