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.
- Sorting Algorithms [ IPython nbviewer ]
-
Singly Linked List [ IPython nbviewer ]
-
Stacks [ IPython nbviewer ]
-
Queues and Deques [ IPython nbviewer ]
-
Linear regression via the least squares fit method [ IPython nbviewer ]
-
Dixon's Q test to identify outliers for small sample sizes [ IPython nbviewer ]
-
Rejection sampling [ IPython nbviewer ]
- Please see my
pattern_classification
repository at https://github.com/rasbt/pattern_classification
-
Counting points inside a hypercube [ IPython nbviewer ]
-
Vectorizing a classic
for
-loop in NumPy for calculating Euclidean distances [ IPython nbviewer ]
- FizzBuzz [ IPython nbviewer ]
- Introduction to Greedy Algorithms [ IPython nbviewer ]
- Introduction to Divide-and-Conquer Algorithms [ IPython nbviewer ]
- Finding the Maximum Pairwise Product [ IPython nbviewer ]
- Fibonacci Numbers [ IPython nbviewer ]
- Greatest Common Divisor [ IPython nbviewer ]