This document is a collection of common computing algorithms and their
implementations. It was not originally meant to be a formal study in
the efficiency or analysis of algorithms but recently I have been
augmenting the discussion of the presented algorithms with formal
analysis. This is by no means an all-encompassing collection of
algorithms. Rather it is intended to be a cookbook of popular
algorithms, a discussion of how they work, and a collection of useful
It is far from complete and contains many bugs. I am actively working
on this collection in my spare time so, now and then, you will notice
changes. Being that it is a work-in-progress, however, please excuse
any rough edges. The wording of my descriptions needs polishing in
many places, the implementations given may be buggy, and the overall
content is not (and may never be) as complete as I would like.
This document is available as a bunch of HTML
in Adobe Postscript format. This document is also available
in LATEX_format but to run it through LATEX_it you will need the
LATEX2HTML style files included with that translator. If you want
the original LATEX, e-mail me.
All pages in this collection (with the exception of those which were
written by someone else and are thus labeled) are protected by the following copyright: Copyright
©1996-1998 by Scott Gasch. Except as otherwise indicated
elsewhere in this document, with respect to a particular portion,
file, or document, any person is hereby authorized to view, copy,
print, and distribute this document subject to the following
condition: The above copyright notice must appear in any copy of the
document or portion thereof. Sections of code donated to this
document are protected by the original copyright of their author(s).
All brands or product names appearing in this document are trademarks,
registered trademarks, or service marks of their respective owners.
If you have a suggestion about the direction of the document, find a
mistake, have an algorithm you would like to see included, or have an
implementation that you would like to donate, please e-mail me at