Here are a series of slides and codes for the Lab of Analysis of Algorithms

  1. Ctypes and Python GitHub Slides
    • Here an introduction on how to easily build C libraries for Python using ctypes
    • Whey to use ctypes
    • How to access numpy arrays
      • The flatten array contiguous representation
    • Using Docker for insulating your development environments
  2. Asymptotic Notation and Probability
  3. Insertion Sort GitHub
    • The first algorithm
    • How to calculate complexity on it
    • A recursive version of it GitHub
  4. Merge Sort GitHub
    • A Classic Implementation
    • The in place merge version
  5. Heaps GitHub
    • One of the basic tree representation before pointers
    • The class Heap
    • The Basic Implementations
    • Heap Sort
  6. Quick Sort Under Tail Recursion GitHub
    • Avoiding using the stack
    • Using Tail Recursion
    • Problems for the lab
  7. Linear Sorting
    • Counting Sort
    • Radix Sort
    • Bucket Sort
  8. Median Order Statistics
    • kth statistics
    • Using Randomization
    • Worst Case
  9. Theoretical Exercises on Sorting and Statistics Slides

  10. Hash Tables GitHub
    • The first hash table
    • The table using Universal Hashing
    • Open Addressing
    • Problems for the lab
  11. Binary Trees GitHub
    • Instead of going 1D go 2D
    • The Binary Search Structure
  12. AVL Trees GitHub
    • Balancing the BSTree
    • Using recursion for that
  13. Red-Black Trees

  14. B-Trees

  15. Dynamic Programming

  16. Greedy Methods

  17. Amortized Analysis

  18. Fibonacci Heaps

  19. Disjoint Set Representations

  20. Graphs

  21. Minimum Spanning Trees

UNDER CONSTRUCTION