# marcosfede/algorithms

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/marcosfede-algorithms).**

1,132 stars · 139 forks · Python · GPL-3.0

## Links

- GitHub: https://github.com/marcosfede/algorithms
- awesome-repositories: https://awesome-repositories.com/repository/marcosfede-algorithms.md

## Topics

`algorithm` `bfs` `competitive-programming` `data-structures` `go` `golang` `graph` `hacktoberfest` `heap` `interview` `interview-practice` `javascript` `language` `python` `ruby`

## Description

This project is a comprehensive repository of fundamental computer science algorithms and data structures designed as a reference for academic study, technical interview preparation, and competitive programming. It provides standardized implementations of core computational strategies, serving as an educational resource for developers to master software engineering fundamentals and algorithmic problem-solving.

The collection distinguishes itself through a multi-language approach, offering cross-language solutions for complex tasks ranging from graph traversal and dynamic programming to bitwise manipulation. Beyond static code, the repository includes resources for visualizing algorithmic processes and curated references to industry-standard literature, helping users understand how logic executes in real-time.

The library covers a broad capability surface, including combinatorial techniques, mathematical computation, and specialized sequence processing. It provides implementations for essential data structures such as trees, hash tables, and linked lists, alongside advanced strategies like recursive backtracking, divide and conquer decomposition, and stochastic modeling. These tools are organized to support the study of both classic algorithmic challenges and practical system design patterns.

## Tags

### Education & Learning Resources

- [Algorithmic Problem Sets](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/general-collections-and-study/algorithmic-problem-sets.md) — Provides a comprehensive collection of implementations for fundamental data structures and algorithms for study and interview preparation.
- [Computer Science Curricula](https://awesome-repositories.com/f/education-learning-resources/computer-science-curricula.md) — Serves as a repository of reference solutions for common programming challenges and standard architectural patterns.
- [Data Structure Implementations](https://awesome-repositories.com/f/education-learning-resources/data-structure-implementations.md) — Provides standardized implementations of fundamental data structures like linked lists, heaps, and queues. ([source](https://github.com/marcosfede/algorithms/blob/master/README.md))
- [Sorting Algorithms](https://awesome-repositories.com/f/education-learning-resources/sorting-algorithms.md) — Provides educational implementations of standard sorting algorithms for study. ([source](https://github.com/marcosfede/algorithms/tree/master/sort))
- [Computer Science Education](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education.md) — Offers foundational learning materials covering core computer science principles, algorithmic problem solving, and software engineering practices.
- [Competitive Programming Training](https://awesome-repositories.com/f/education-learning-resources/competitive-programming-training.md) — Provides structured practice sets and algorithmic challenges designed to improve performance in coding competitions.
- [Randomized Data Structures](https://awesome-repositories.com/f/education-learning-resources/data-structure-design/randomized-data-structures.md) — Maintains collections of unique elements supporting constant-time insertion, deletion, and random retrieval. ([source](https://github.com/marcosfede/algorithms/tree/master/set))
- [Divide And Conquer Algorithms](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/algorithmic-paradigms/divide-and-conquer-algorithms.md) — Implements divide and conquer algorithms to decompose complex computational problems into manageable sub-problems.
- [Graph Connectivity Analysis](https://awesome-repositories.com/f/education-learning-resources/graph-algorithms/graph-connectivity-analysis.md) — Provides analysis of graph connectivity to determine reachability between vertices in directed structures. ([source](https://github.com/marcosfede/algorithms/blob/master/graph/checkDiGraphStronglyConnected.py))
- [Shortest Path Algorithms](https://awesome-repositories.com/f/education-learning-resources/graph-problem-solving/shortest-path-algorithms.md) — Implements algorithms for finding the shortest path between nodes in graphs by comparing edge counts. ([source](https://github.com/marcosfede/algorithms/blob/master/graph/find_path.py))
- [Sudoku Board Validation](https://awesome-repositories.com/f/education-learning-resources/puzzle-validation-algorithms/sudoku-board-validation.md) — Checks if a partially filled grid follows standard rules by verifying that no numbers repeat within rows, columns, or sub-grids. ([source](https://github.com/marcosfede/algorithms/blob/master/map/valid_sudoku.py))
- [Software Engineering Fundamentals](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/software-engineering-fundamentals.md) — Provides foundational concepts and methodologies for building, maintaining, and analyzing robust software systems.
- [Technical Interview Preparation](https://awesome-repositories.com/f/education-learning-resources/technical-interview-preparation.md) — Includes resources and practice materials specifically for preparing for technical assessments and coding interviews.
- [Tree Data Structures](https://awesome-repositories.com/f/education-learning-resources/tree-data-structures.md) — Provides standardized implementations of tree-based data structures including binary search trees and tries. ([source](https://github.com/marcosfede/algorithms/tree/master/tree))

### Part of an Awesome List

- [Algorithm Solutions](https://awesome-repositories.com/f/awesome-lists/learning/algorithm-solutions.md) — Provides a comprehensive collection of algorithmic solutions for competitive programming and technical interview preparation. ([source](https://github.com/marcosfede/algorithms/blob/master/adventofcode/2018/25))

### Data & Databases

- [Binary Search Implementations](https://awesome-repositories.com/f/data-databases/binary-search-implementations.md) — Implements binary search algorithms for efficient data retrieval in sorted collections. ([source](https://github.com/marcosfede/algorithms/tree/master/search))
- [Encapsulation Patterns](https://awesome-repositories.com/f/data-databases/data-collections-datasets/standard-data-structures/encapsulation-patterns.md) — Organizes information into standardized containers like trees and hash tables to provide efficient access and modification patterns.
- [Graph Traversal Strategies](https://awesome-repositories.com/f/data-databases/graph-computing-systems/graph-processing/graph-traversal-strategies.md) — Provides systematic graph traversal strategies for pathfinding, connectivity analysis, and cycle detection.
- [Hash Table Implementations](https://awesome-repositories.com/f/data-databases/hash-maps/key-mapping-functions/hash-table-implementations.md) — Implements hash tables using hash functions to compute indices for efficient key-value retrieval. ([source](https://github.com/marcosfede/algorithms/tree/master/map))
- [Sliding Window Maximums](https://awesome-repositories.com/f/data-databases/rolling-maximum-calculators/sliding-window-maximums.md) — Calculates the maximum value within a sliding window using deque-based optimization. ([source](https://github.com/marcosfede/algorithms/blob/master/heap/sliding_window_max.py))

### Scientific & Mathematical Computing

- [Graph Analysis Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/graph-analysis-algorithms.md) — Implements core graph theory algorithms including pathfinding, cycle detection, and spanning tree generation. ([source](https://github.com/marcosfede/algorithms/blob/master/graph))
- [Arbitrary Base Conversion](https://awesome-repositories.com/f/scientific-mathematical-computing/arbitrary-base-conversion.md) — Converts integers between arbitrary bases from 2 to 36. ([source](https://github.com/marcosfede/algorithms/blob/master/maths/base_conversion.py))
- [Shortest Path Grid Calculators](https://awesome-repositories.com/f/scientific-mathematical-computing/distance-metrics/spherical-distance-calculators/coordinate-distance-calculation/grid-distance-calculators/shortest-path-grid-calculators.md) — Computes the shortest path from every empty room in a grid to the nearest gate using search traversal. ([source](https://github.com/marcosfede/algorithms/blob/master/dfs/walls_and_gates.py))
- [Greatest Common Divisor Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/greatest-common-divisor-algorithms.md) — Provides implementations of the extended Euclidean algorithm for finding greatest common divisors and linear combination coefficients. ([source](https://github.com/marcosfede/algorithms/blob/master/maths/extended_gcd.py))
- [Linked List Cycle Detectors](https://awesome-repositories.com/f/scientific-mathematical-computing/linked-list-cycle-detectors.md) — Identifies whether a linked list contains a cycle by traversing the structure and checking for repeated nodes. ([source](https://github.com/marcosfede/algorithms/blob/master/linkedlist/is_cyclic.py))
- [Iterative Search Strategies](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/algorithms-and-complexity/algorithms/sorting/logarithmic-search-optimizations/iterative-search-strategies.md) — Locates specific elements within datasets by repeatedly narrowing the search range to achieve efficient time complexity.
- [Divisor Calculators](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/arithmetic-number-types/multiplication-algorithms/number-theory-algorithms/prime-factorization-algorithms/divisor-calculators.md) — Calculates all divisors of an integer by iterating through potential candidates. ([source](https://github.com/marcosfede/algorithms/blob/master/dfs/all_factors.py))
- [Backtracking Solvers](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/mathematical-libraries-and-utilities/mathematical-libraries/expression-evaluators/mathematical-expression-optimizers/backtracking-solvers.md) — This project calculates all possible operator combinations between digits of a string to reach a specific target value using backtracking techniques. ([source](https://github.com/marcosfede/algorithms/blob/master/backtrack/expression_add_operators.py))
- [String Abbreviation Generators](https://awesome-repositories.com/f/scientific-mathematical-computing/string-abbreviation-generators.md) — Generates all possible abbreviated forms of a string using backtracking. ([source](https://github.com/marcosfede/algorithms/blob/master/backtrack/generate_abbreviations.py))

### Software Engineering & Architecture

- [Sequence DP Solutions](https://awesome-repositories.com/f/software-engineering-architecture/algorithmic-problem-solving/sequence-dp-solutions.md) — Solves sequence-based dynamic programming challenges like longest common subsequence. ([source](https://github.com/marcosfede/algorithms/tree/master/map))
- [Architectural Pattern Implementations](https://awesome-repositories.com/f/software-engineering-architecture/architectural-pattern-implementations.md) — Provides reference implementations for architectural patterns used in system design. ([source](https://github.com/marcosfede/algorithms/tree/master/design))
- [Connected Component Identification](https://awesome-repositories.com/f/software-engineering-architecture/algorithmic-problem-solving/grid-connectivity-solving/connected-component-identification.md) — Implements algorithms for identifying and counting contiguous regions of identical values in a grid. ([source](https://github.com/marcosfede/algorithms/blob/master/dfs/count_islands.py))
- [Backtracking Algorithms](https://awesome-repositories.com/f/software-engineering-architecture/backtracking-algorithms.md) — Explores potential solution spaces using recursive backtracking to incrementally build and validate candidates.
- [Dynamic Programming Techniques](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-programming-techniques.md) — Uses dynamic programming techniques to cache results of overlapping subproblems and avoid redundant computation.
- [Classic Problem Implementations](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-programming-techniques/classic-problem-implementations.md) — Implements classic algorithmic challenges to demonstrate efficient problem-solving techniques for complex computational tasks. ([source](https://github.com/marcosfede/algorithms/blob/master/dp))
- [Linked List Mid-Node Deletions](https://awesome-repositories.com/f/software-engineering-architecture/linked-lists/node-removal-techniques/doubly-linked-list-removals/linked-list-mid-node-deletions.md) — Implements the copy-from-next node removal technique for singly linked lists. ([source](https://github.com/marcosfede/algorithms/blob/master/linkedlist/delete_node.py))
- [Missing Number Identification](https://awesome-repositories.com/f/software-engineering-architecture/sorting-algorithms/linear-time-integer-sorts/cyclic-sorts/missing-number-identification.md) — Identifies missing integers in a sequence by comparing against expected ranges. ([source](https://github.com/marcosfede/algorithms/blob/master/bit/find_missing_number.py))
- [Spatial Grid Traversal Algorithms](https://awesome-repositories.com/f/software-engineering-architecture/spatial-grid-traversal-algorithms.md) — Provides computational methods for navigating and processing two-dimensional grid structures using coordinate-based logic. ([source](https://github.com/marcosfede/algorithms/blob/master/dfs/pacific_atlantic.py))
- [String and Sequence Algorithm Solutions](https://awesome-repositories.com/f/software-engineering-architecture/string-processing-algorithms/longest-common-substring-algorithms/string-and-sequence-algorithm-solutions.md) — Provides string and sequence manipulation algorithms including pattern matching and reversal. ([source](https://github.com/marcosfede/algorithms/tree/master/strings))
- [Anagram Grouping Algorithms](https://awesome-repositories.com/f/software-engineering-architecture/string-processing-algorithms/substring-counting/anagram-grouping-algorithms.md) — Groups strings into categories based on shared patterns like anagrams. ([source](https://github.com/marcosfede/algorithms/tree/master/strings))
- [Graph](https://awesome-repositories.com/f/software-engineering-architecture/tree-path-sum-algorithms/path-enumerations/graph.md) — Calculates valid routes between nodes in a graph structure using recursive backtracking to explore potential connections. ([source](https://github.com/marcosfede/algorithms/blob/master/graph/find_path.py))

### Artificial Intelligence & ML

- [Markov State Transition Models](https://awesome-repositories.com/f/artificial-intelligence-ml/markov-state-transition-models.md) — Simulates Markov chain state transitions using defined probability matrices. ([source](https://github.com/marcosfede/algorithms/blob/master/graph/markov_chain.py))
- [Mathematical Expression Parsing](https://awesome-repositories.com/f/artificial-intelligence-ml/natural-language-processing/mathematical-expression-parsing.md) — Parses mathematical strings into executable logic based on operator precedence. ([source](https://github.com/marcosfede/algorithms/tree/master/calculator))

### Operating Systems & Systems Programming

- [Bitwise Logic Operations](https://awesome-repositories.com/f/operating-systems-systems-programming/bit-level-binary-parsers/bit-level-slicing/bitwise-logic-operations.md) — Implements low-level bitwise logic operations for efficient data manipulation and performance optimization.

### Programming Languages & Runtimes

- [Multi-Language Code Collections](https://awesome-repositories.com/f/programming-languages-runtimes/multi-language-code-collections.md) — Offers a cross-language library providing efficient solutions for sorting, searching, graph traversal, and dynamic programming.
