# jack-lee-hiter/algorithmsbypython

**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/jack-lee-hiter-algorithmsbypython).**

4,082 stars · 1,307 forks · Python

## Links

- GitHub: https://github.com/Jack-Lee-Hiter/AlgorithmsByPython
- awesome-repositories: https://awesome-repositories.com/repository/jack-lee-hiter-algorithmsbypython.md

## Description

AlgorithmsByPython is a reference library and educational repository providing runnable Python implementations of computer science fundamentals. It serves as a comprehensive guide for algorithmic patterns, core data structures, and solutions for competitive programming and technical interview challenges.

The project distinguishes itself by offering a wide array of reference implementations, including a dedicated set of solutions for common LeetCode problems. It focuses on translating theoretical computational logic into practical Python code for educational and practical use.

The repository covers a broad range of capabilities, including the design of linear collections, trees, and graphs, as well as the implementation of search and sorting strategies. It includes utilities for graph theory, such as shortest path and minimum spanning tree calculations, and provides mechanisms for disk indexing and text pattern matching.

## Tags

### Part of an Awesome List

- [Educational Python Implementations](https://awesome-repositories.com/f/awesome-lists/devtools/frontend-frameworks/no-framework-frontends/pure-language-implementations/educational-python-implementations.md) — Offers a collection of pure Python codebases designed to teach internal algorithm logic and data structure implementation.
- [Algorithm Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/python-libraries/algorithm-libraries.md) — Provides a library of solved computational problems and fundamental algorithmic patterns.

### Education & Learning Resources

- [Data Structure Implementations](https://awesome-repositories.com/f/education-learning-resources/data-structure-implementations.md) — Provides reference implementations of fundamental data structures including linked lists, stacks, queues, and heaps. ([source](https://github.com/jack-lee-hiter/algorithmsbypython#readme))
- [Algorithm Reference Libraries](https://awesome-repositories.com/f/education-learning-resources/algorithm-reference-libraries.md) — Serves as a comprehensive reference guide covering sorting, searching, and graph theory in runnable Python.
- [Algorithm Implementations](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/algorithms/general-collections-and-study/algorithm-implementations.md) — Implements classic design patterns including greedy algorithms, dynamic programming, and divide-and-conquer strategies. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Balanced Search Trees](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/data-structure-implementations/data-structures/balanced-search-trees.md) — Implements self-balancing search trees to ensure logarithmic time complexity for operations. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Stack Structures](https://awesome-repositories.com/f/education-learning-resources/educational-resources/algorithms-theory-academics/cs-theory-foundations/data-structure-implementations/data-structures/stack-structures.md) — Implements last-in-first-out stack structures for expression parsing and nested call handling. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Fundamental Data Structures](https://awesome-repositories.com/f/education-learning-resources/fundamental-data-structures.md) — Provides reference implementations of basic data organization methods used in computer science.
- [Graph Theory Algorithms](https://awesome-repositories.com/f/education-learning-resources/graph-theory-algorithms.md) — Includes educational resources and implementations for shortest path and minimum spanning tree algorithms.
- [Sorting Algorithms](https://awesome-repositories.com/f/education-learning-resources/sorting-algorithms.md) — Offers a variety of standard sorting strategies for ordering data collections based on speed and stability. ([source](https://github.com/jack-lee-hiter/algorithmsbypython#readme))
- [Algorithmic Problem Solving](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/algorithmic-problem-solving.md) — Provides educational implementations of computational logic and efficient solutions for complex algorithmic challenges. ([source](https://github.com/jack-lee-hiter/algorithmsbypython#readme))
- [LeetCode Solution References](https://awesome-repositories.com/f/education-learning-resources/leetcode-solution-references.md) — Offers a curated collection of Python solutions to LeetCode problems for study and reference.
- [Weighted Graph Path Optimizations](https://awesome-repositories.com/f/education-learning-resources/path-optimization-algorithms/weighted-graph-path-optimizations.md) — Calculates minimum distances in weighted graphs using greedy selection and distance relaxation techniques.
- [In-Memory Sorting](https://awesome-repositories.com/f/education-learning-resources/sorting-algorithms/in-memory-sorting.md) — Provides memory-efficient algorithms to arrange elements in specific sequences for optimal performance. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Recursive Problem Solving](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/algorithmic-problem-solving/recursive-problem-solving.md) — Implements recursive patterns to solve complex computational problems by breaking them into self-similar sub-problems.
- [Technical Interview Preparation](https://awesome-repositories.com/f/education-learning-resources/technical-interview-preparation.md) — Provides practice materials and solutions for common coding challenges used in technical assessments.
- [Huffman Tree Construction](https://awesome-repositories.com/f/education-learning-resources/tree-data-structures/huffman-tree-construction.md) — Provides algorithms for constructing optimal binary prefix trees for data compression. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Binary Tree Transformations](https://awesome-repositories.com/f/education-learning-resources/tree-data-structures/tree-reconstruction/binary-tree-transformations.md) — Provides capabilities to mirror binary trees and convert search trees into doubly linked lists. ([source](https://github.com/jack-lee-hiter/algorithmsbypython#readme))

### Data & Databases

- [Data Structure Implementations](https://awesome-repositories.com/f/data-databases/data-structure-implementations.md) — Provides a reference collection of common data structures and their algorithmic implementations.
- [Hash Maps](https://awesome-repositories.com/f/data-databases/hash-maps.md) — Implements hash maps using hash functions to achieve constant-time data retrieval for unique identifiers.
- [Adjacency Lists](https://awesome-repositories.com/f/data-databases/list-data-structures/adjacency-lists.md) — Implements graph representations using adjacency lists to optimize space and traversal for sparse data sets.
- [Key Mapping Functions](https://awesome-repositories.com/f/data-databases/hash-maps/key-mapping-functions.md) — Implements hash functions that transform keys into indices for constant-time data retrieval. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Pointer-Based Balancing](https://awesome-repositories.com/f/data-databases/row-manipulations/programmatic-tree-manipulation/pointer-based-balancing.md) — Manages hierarchical data by rearranging child and parent references to perform rotations and balancing operations.

### Programming Languages & Runtimes

- [Graph Representations](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-structures/dictionaries/graph-representations.md) — Provides capabilities to represent network connections using adjacency matrices and adjacency lists. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Linear Data Structures](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-structures/linear-collections/linear-data-structures.md) — Implements fundamental linear and non-linear collections using object references to manage node relationships.
- [Queue Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-structures/linear-collections/linear-data-structures/queue-implementations.md) — Implements first-in-first-out queue structures for task scheduling and buffering. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))

### Scientific & Mathematical Computing

- [Binary Tree Traversals](https://awesome-repositories.com/f/scientific-mathematical-computing/recursive-tree-traversal-algorithms/binary-tree-traversals.md) — Implements standard binary tree visitation patterns including preorder, inorder, and postorder. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Sorting Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/sorting-algorithms.md) — Implements a wide variety of memory-efficient sorting algorithms to order large datasets.
- [Minimum Spanning Tree Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/algorithms-and-complexity/algorithms/graph-processing/minimum-spanning-tree-algorithms.md) — Implements Prim and Kruskal algorithms to find the minimum spanning tree in weighted graphs. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Shortest Path Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/algorithms-and-complexity/algorithms/graph-processing/shortest-path-algorithms.md) — Calculates minimum distances between nodes in weighted graphs using Dijkstra and Bellman-Ford algorithms. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
- [Topological Sorting](https://awesome-repositories.com/f/scientific-mathematical-computing/topological-sorting.md) — Provides algorithms for producing a linear ordering of vertices in directed acyclic graphs based on dependencies. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))

### Software Engineering & Architecture

- [Linked List Manipulation Utilities](https://awesome-repositories.com/f/software-engineering-architecture/linked-lists/linked-list-manipulation-utilities.md) — Includes utilities for reversing, merging, and modifying linked list nodes via pointer manipulation. ([source](https://github.com/jack-lee-hiter/algorithmsbypython#readme))
- [Swap-Based Sorting Algorithms](https://awesome-repositories.com/f/software-engineering-architecture/sorting-algorithms/bubble-sorts/swap-based-sorting-algorithms.md) — Implements iterative sorting logic through repeated element comparison and swapping.
- [External Merge Sorting](https://awesome-repositories.com/f/software-engineering-architecture/sorting-algorithms/merge-sorts/external-merge-sorting.md) — Implements external merge sorting to order data sets that exceed available system memory.
- [String Matching Algorithms](https://awesome-repositories.com/f/software-engineering-architecture/string-matching-algorithms.md) — Provides implementations of various algorithms for locating substrings and patterns within larger text sequences. ([source](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md))
