Skip to content

Intro to algortihms and data structures using Python.

License

Notifications You must be signed in to change notification settings

wcDogg/algorithms-data-structures

Repository files navigation

Algorithms and Data Structures

Based on freeCodeCamp.org: Algorithms and Data Structures + others.

Algorithms

  • Learning Objectives
  • What is an algorithm?
  • What is algorithmic thinking?
  • Correctness
  • Efficiency
  • What is Big O?
  • Time, Space, and n
  • Linear Search - py01_search_linear.py
  • Iterative Binary Search - py02_search_binary.py
  • Recursive Binary Search - py03_search_recursive.py
  • O(n*k) - Polynomial Runtimes, upper bound
  • O(1) - Constant Runtime
  • O(n) - Linear Runtime
  • O(log n) - Logarithmic Runtime
  • O(log2 n + 1) - Binary Runtime
  • O(n^2) - Quadratic Runtime
  • O(n^3) - Cubic Runtime
  • O(n log n) - Quasilinear Runtime
  • O(x^n) - Exponential Runtimes - Brute Force
  • O(n!) - Factorial / Combinatorial Runtimes - Traveling Salesman
  • O(1) - Constant Space - Linear & Iterative Binary Search
  • O(log n) - Logarithmic Space - Recursive Binary Search
  • Recursion Depth

Data Structures

  • Learning Objectives
  • What is a data structure?
  • py04_arrays.py
  • Key Python Points
  • Homogenous and Heterogenous Arrays
  • Contiguous and Non-Contiguous Structures
  • Homogenous Arrays and Contiguous Memory
  • Heterogeneous Arrays and Contiguous Memory
  • More About Contiguous Memory
  • Amortized Memory
  • py05_linked-lists.py
  • Self referential nodes
  • Single and doubly linked lists
  • Head and tail nodes

About

Intro to algortihms and data structures using Python.

Topics

Resources

License

Stars

Watchers

Forks

Languages