/PartitionProblem

Implemented using 6 different algorithms: Brute Force (iterative and recursive), Backtracking (iterative and recursive), Memoization and Tabulation for the Partition Problem + time analysis

Primary LanguageJavaMIT LicenseMIT

Partition Problem

Partition Problem: Given a set of positive integers, find if it can be divided into two subsets with equal sum.

This is a known problem and ideal to be resolved using Dynamic programming. It is implemented using 6 different algorithms: Brute Force (iterative and recursive), Backtracking (iterative and recursive), Memoization and Tabulation.

We have implemented this in order to compare the time difference and the advantages and disadvantages that dynamic programming brings in different programming languages. To calculate these times there are 2 scripts, one called createExecutables which creates a folder called "Executables", and another called calculateTimes to take the times and redirect the results to the folder created called "times" which contains 6 files for each algorithms.

Complexity and time analysis

For more information about complexity and time of the algorithms (explained in Spanish): Complexity and time analysis