next up previous contents index CD CD Algorithms
Next: Sorting Up: A Catalog of Algorithmic Previous: Discrete Fourier Transform

Combinatorial Problems

In this section, we consider several classic algorithmic problems of a purely combinatorial nature. These include sorting and permutation generation, both of which were among the first nonnumerical problems arising on electronic computers. Sorting, searching, and selection can all be classified in terms of operations on a partial order of keys. Sorting can be viewed as identifying or imposing the total order on the keys, while searching and selection involve identifying specific keys based on their position in the total order.      

The rest of this section deals with other combinatorial objects, such as permutations, partitions, subsets, calendars, and schedules.    We are particularly interested in algorithms that rank and unrank combinatorial objects, i.e. that map each distinct object to and from a unique integer. Once we have rank and unrank operations, many other tasks become simple, such as generating random objects (pick a random number and unrank) or listing all objects in order (iterate from 1 to n and unrank).

We conclude with the problem of generating graphs. Graph algorithms are more fully presented in subsequent sections.

Books on general combinatorial algorithms, in this restricted sense, include:




next up previous contents index CD CD Algorithms
Next: Sorting Up: A Catalog of Algorithmic Previous: Discrete Fourier Transform

Algorithms
Mon Jun 2 23:33:50 EDT 1997