Yarintop / Data-Structures-And-Algorithms-In-Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Data Structures And Algorithms In Python

This is a WIP and not finished in the slightest.

I've made this repository in order to learn new data structures and algorithms as well as practice the ones I did know, and what a better way is there than implementing them.

I've used various sources which are credited in each section, but I've mainly used GeeksForGeeks as a reference point and for the order of the algorithms.

  • Algorithms
    • Sorting
      • Insertion Sort
      • Selection Sort
      • Merge Sort
      • Bubble Sort
      • Quick Sort
    • Searching
      • Linear Search
      • Binary Search
      • Jump Search
      • Exponential Search
      • Ternary Search
      • Fibonacci Search
      • Sublist Search
    • Pattern Searching
      • Naive Pattern Searching
      • KMP
      • Finite Automata
      • Rabin Karp
      • Aho Corasick
    • Primality Tests
      • Miller Rabin
    • Mathematical
      • GCD
      • LCM
      • Prime Factors
      • Sieve Of Sundaram
      • Smith Numbers
      • Sphenic Numbers
    • Graph Algorithms
      • BFS
      • DFS
      • Topological Sorting
      • Kruskal's
      • Prim's
      • Dijkstra's Algorithm
      • A*
    • Flow Algorithms
      • Ford Fulkerson
    • Compression
      • Huffman Coding
    • Backtracking
      • The Knight's Tour
  • Data Structures
    • Linked Lists
      • Singly Linked List
      • Doubly Linked List
      • Circular Linked List
    • Queue
    • Stack
    • Heaps
      • A General Heap (Can be dynamically max or min)
      • Max Heap
      • Min Heap
    • Hash Maps (and various hash functions)
      • Chaining Hash Map
      • Open Addressing Hash Map
    • Trees
      • Binary Tree
      • Binary Search Tree
      • AVL Tree
      • Segment Tree
      • Trie
    • Lists
      • Skip List
      • Self Organizing List
    • Graphs (various implementations of a graph)
      • General Graph (graph stores node and edge objects)
      • Adjacency List Graph (graph stores node objects and each node stores his neighbors)
      • Adjacency Matrix Graph (graph stores node objects and a matrix that stores neighbors [rows = nodes, columns = nodes])
      • Incidence Matrix Graph (graph stores node and edge objects, and a matrix that stores which node is affiliated to which edge [rows = nodes, columns = edges])

About

License:MIT License


Languages

Language:Python 100.0%