Sorting and Searching Algorithms

This is a collection of algorithms for sorting and searching.
Descriptions are brief and intuitive, with just enough theory thrown in to make you nervous.
I assume you know a high-level language, such as C, and that you are familiar with programming
concepts including arrays and pointers.

The first section introduces basic data structures and notation. The next section presents
several sorting algorithms. This is followed by a section on dictionaries, structures
that allow efficient insert, search, and delete operations. The last section
describes algorithms that sort data and implement dictionaries for very large files. Source
code for each algorithm, in ANSI C, is included.

Most algorithms have also been coded in Visual Basic. If you are programming
in Visual Basic, I recommend you read Visual
Basic Collections
and Hash Tables, for an explanation of hashing and node representation. A
search for Algorithms at amazon.com returned over 18,000 entries. Here is one
of the best.

A graduate-level discussion of algorithms that also works for the mathematically
challenged.

For additional references see the bibliography. If
you are interested in translating this document to another language, please
send me email. Special thanks go to Pavel Dubner, whose numerous suggestions
were
much appreciated. Right-click on the following links for additional downloads:

Permission to reproduce portions of this document is given provided the web
site listed below is referenced, and no additional restrictions apply. Source
code, when part of a software
project, may be used freely without reference to the author.