Bringing theory to life: A collection of core algorithms I learned as pseudocode during my Computer Science and Statistics studies, now implemented in Python.
Instead of just reading about theoretical concepts, I created this space to document my academic journey. This repository serves as a practical, searchable index of my study notes turned into real, working code. It focuses on clean implementation, logical thinking, and problem-solving.
Here is a detailed list of the algorithms included. Click on any file name to view the Python code directly.
-
Searching Algorithms
Binary Search.py: Efficiently finds the position of a target value within a sorted array using a divide-and-conquer approach.
-
Math & Combinatorics
Combination.py: Calculates and generates all possible combinations of a dataset without repetitions.Subsets.py: Generates all possible subsets (the power set) of a given mathematical set.Find Greatest Common Divisor.py: Finds the greatest common divisor (GCD) of two numbers efficiently.
-
Computational Geometry
Convex Hull.py: Finds the smallest convex polygon that contains a given set of points (useful in pattern recognition and data modeling).
-
Dynamic Programming
Ways Num.py: Solves the classic "number of ways" problem. It calculates how many different ways you can reach a target sum using a specific set of numbers. This script demonstrates memoization (top-down dynamic programming) to optimize performance and avoid redundant calculations.