This repository is meant to be a growing collection of interesting and useful algorithms implemented in Python and presented in IPython notebooks. IPython notebooks, because they offer a convenient way for describing the algorithm, benchmarking, maybe even visualization, and eventually sharing and viewing.
If you have any suggestions or want to make additions, I would be very happy if you could send me
- an email,
- leave me a message on google+,
- or even send me a tweet on twitter (given you can fit it within the 140 character limit ;)).
- Or even better: It would be great if you would simply fork this project and send me a pull request.
- Selection Sort [ Jupyter nbviewer ]
- Bubble Sort [ Jupyter nbviewer ]
- QuickSort [ Jupyter nbviewer ]
-
Bloom Filters [ Jupyter nbviewer ]
-
Singly Linked List [ Jupyter nbviewer ]
-
Stacks [ Jupyter nbviewer ]
-
Queues and Deques [ Jupyter nbviewer ]
-
Binary Search [ Jupyter nbviewer ]
-
Breadth-First Search [ Jupyter nbviewer ]
-
Linear regression via the least squares fit method [ Jupyter nbviewer ]
-
Dixon's Q test to identify outliers for small sample sizes [ Jupyter nbviewer ]
-
Rejection sampling [ Jupyter nbviewer ]
- Please see my
pattern_classification
repository at https://github.com/rasbt/pattern_classification
-
Counting points inside a hypercube [ Jupyter nbviewer ]
-
Vectorizing a classic
for
-loop in NumPy for calculating Euclidean distances [ Jupyter nbviewer ]
- FizzBuzz [ Jupyter nbviewer ]
- Introduction to Greedy Algorithms [ Jupyter nbviewer ]
- Introduction to Divide-and-Conquer Algorithms [ Jupyter nbviewer ]
- Recursion Examples [ Jupyter nbviewer ]
- Finding the Maximum Pairwise Product [ Jupyter nbviewer ]
- Fibonacci Numbers [ Jupyter nbviewer ]
- Greatest Common Divisor [ Jupyter nbviewer ]