Skip to main content
===============================
Python Algorithms
===============================

.. image:: https://badge.fury.io/py/python_algorithms.png
:target: http://badge.fury.io/py/python_algorithms

.. image:: https://travis-ci.org/mihassan/python_algorithms.png?branch=master
:target: https://travis-ci.org/mihassan/python_algorithms

.. image:: https://coveralls.io/repos/mihassan/python_algorithms/badge.png?branch=master
:target: https://coveralls.io/r/mihassan/python_algorithms?branch=master


Python Algorithms contains a collection of useful algorithms written in python.
The algorithms include (but not limited to) topics such as searching, sorting,
graph, and string theory.

This project is inspired from the textbook Algorithms, 4th Edition by Robert
Sedgewick and Kevin Wayne and associated book-site
http://algs4.cs.princeton.edu/home/. The goal of this book is summarized in the
following excerpt from the book-site:

Our original goal for this book was to cover the 50 algorithms that every
programmer should know. We use the word programmer to refer to anyone
engaged in trying to accomplish something with the help of a computer,
including scientists, engineers, and applications developers, not to mention
college students in science, engineering, and computer science.

However, the algorithms for this project are not meant to be a ported version of
the algorithms found in the book. Efforts should be made to implement those
algorithms from the scratch following Pythonic coding style. Some of the
algorithms are well known and the reference for those algorithms should appear
in the documentation. While, some of the algorithms are very specific and
difficult implement in a different way while maintaining accuracy and
efficiency. Such algorithms appear in the scientific literatures and/or books
and those should be properly referenced as well.

Features
--------

* Mainly for educational purposes, but can be useful in certain practical scenarios as well.
* Consequently, built-in algorithms are avoided as much as possible and detailed
implementation is done from the scratch.
* Preference is given towards a pythonic style rather than sticking to true OOP style.
* Free software: BSD license.
* Documentation: http://python_algorithms.rtfd.org.

Algorithms
----------

Here is a list of algorithms divided into packages.

.. Note:: Not all of the algorithms have been fully implemented yet.

Basic
=====

A collection of few basic algorithms that do not fit in other packages. Trivial
algorithms and data structures that are built into python are skipped.

* Binary search
* Knuth shuffle
* Stack
* Queue
* Bag
* Union find

:Estimated Release: 0.2.0

Searching
=========

Specialized searching algorithms and/or corresponding data structures are included in this package.
Although some of the following data structures, such as Hash, are implemented in python, they have been implemented for demonstration purpose.
Unless, specific needs arise, the built-in data structures should be preferred in production code.

* BST
* Red black BST
* Hash

:Estimated Release: 0.3.0

Sorting
=======

* Insertion
* Selection
* Merge
* Quick
* Quick 3 way
* Shell
* Heap

:Estimated Release: 0.4.0

Graph
=====

* Graph
* Directed graph
* BFS
* BFS paths
* DFS
* DFS paths
* Topological

:Estimated Release: 0.5.0

String
======

* LSD
* MSD
* Quick 3 string
* TST
* KMP
* Rabin karp

:Estimated Release: 0.6.0





History
-------

0.1.0 (2014-02-14)
++++++++++++++++++

* First release on PyPI.

0.2.0 (2014-04-15)
++++++++++++++++++

* Implemented the following data structures and algorithms:
* Binary search
* Knuth shuffle
* Stack
* Queue
* Bag
* Union find

Release files for python_algorithms 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python_algorithms 0.2.2
File Size Uploaded
python_algorithms-0.2.2.tar.gz 13.2 kB Details

Release files / python_algorithms-0.2.2.tar.gz

Download URL python_algorithms-0.2.2.tar.gz
Size 13.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2c9b6326901ab30c62641f567208559d8afd79b42ba0d4136e679caee31c6de1
BLAKE2b-256 checksum
How to use checksums
abe3b3e48fbb212f8487403a45d93cbfb2c8b2dcbcd9094cf4fcb7e7db023781
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.2 This release

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page