Permutation Generation Methods

  title={Permutation Generation Methods},
  author={Robert Sedgewick},
  journal={ACM Comput. Surv.},
  • R. Sedgewick
  • Published 1 June 1977
  • Computer Science
  • ACM Comput. Surv.
This paper surveys the numerous methods tha t have been proposed for pe rmuta tmn enumera t ion by computer. The various algori thms which have been developed over the years are described in detail, and zmplemented in a modern ALc, oL-hke language. All of the algori thms are derived from one rumple control structure. The problems involved with implement ing the best of the algori thms on real computers are t reated m detail. Assembly-language programs are derived and analyzed fully. The paper… 

Figures and Tables from this paper

Permutation Generation on Vector Processors
An efficient algorithm for generating a sequence of all the permutations P(i) on N symbols using parallel processors, all of which perform identical operations, is presented (0 < i < M). Starting
More on permutation generation methods
We study a class of recursive permutation generation methods which construct a sequence of alln! permutations ofn elements by repeatedly generating all permutations of the elements in the firstn−1
Fast algorithms for genegrating integer partitions
These are the first known algorithms to produce partitions in the standard representation and with constant average delay, and are faster than any known algorithm for generating integer partition in the multiplicity representation (exclusive of the output).
Every permutation of {1,2,...,N} can be written as the product of two involutions. As a consequence, any permutation of the elements of an array can be performed in-place using simultaneous swaps in
A Versatile Algorithm to Generate Various Combinatorial Structures
This paper begins by reviewing an algorithm proposed by Rohl that generates all unique permutations of a list of elements which possibly contains repetitions, taking some or all of the elements at a time, in any imposed order and provides a proof of correctness of the algorithm.
Surveyor's Forum: A Forgotten Generation of Permutations
The principle that all N! permutations of N elements can be generated by exchanges of adjacent elements was first discovered, not by Johnson and Trotter in 1962, but by an English bell-ringer in the
A Cost-Optimal Pipeline Algorithm for Permutation Generation in Lexicographic Order
In this paper we solve the open problem of designing a cost-optimal parallel algorithm for generating permutations ofMelements out of the set {0, 1, ?,N? 1}, in lexicographic order. Our algorithm
Parallel permutation generation on linear array
  • Chau-Jy Lin
  • Mathematics, Computer Science
    Int. J. Comput. Math.
  • 1991
A parallel algorithm for generating all the n! permutations is presented and the basic idea used is the iterative method and the exchange of two consecutive components in an existing permutation.
Factorial Permutation Generation
It is shown that the proposed method of permutation searching has increased speed due to the use of arithmetic operations of addition and subtraction of factorial numbers, and also allows to change the direction of permutations searching, which increases its flexibility.
Adaptive and Optimal Parallel Algorithms for Enumerating Permutations and Combinations
  • S. Akl
  • Computer Science
    Comput. J.
  • 1987
Three new adaptive and cost-optimal parallel algorithms are described for the problems of enumerating permutations and combinations ofm out ofn objects. The algorithms are designed to be executed on


Programming Improvements to Fike's Algorithm for Generating Permutations
  • J. Rohl
  • Computer Science
    Comput. J.
  • 1976
Some programming modifications to the procedures Fike presents which improve the performance by a factor of about 2.5 show that with a compiler which handles procedure calls reasonably, a recursive procedure is the most efficient.
Generation of permutations by transposition
Many problems require the generation of all n factoral permutations of n marks (called arrangements). A generation scheme is presented whereby each step consists of merely transposing two of the
Permutation enumeration: four new permutation algorithms
Performance tests which have counted execution of assignment statements, comparisons, arithmetic operations, and subscripted array references have shown superiority of the new algorithms compared to Boothroyd's Implementation of M.B. Well's algorithm and Ehrlich's implementation of the Johnson-Trotter algorithm.
Algorithm 102: Permutation in lexicographical order
The procedure was originally programmed in FORTRAN for the Control Data 160 desk-size computer and was limited to te t ra t ion because subroutine recursiveness in CONTROL Data 160 FORTRan has been held down to four levels in the interests of economy.
An algorithm for generating permutations
An argorithm is described which under repeated application generates all permutations of K elements, or since each circular ordering yields K permutations the algorithm generates all K! permutations.
Generation of permutations by adjacent transposition
1. RICHARD S. VARGA, Matrix Iterative Analysis, Prentice-Hall, Inc., 1962. 2. E. G. D'YAKONOV, "On a Method of Solving the Poisson Equation," Dokl. Akad. Nauk SSSR 143 (1962), 21-24, the same paper
Permutations by Interchanges
Methods for obtaining all possible permutations of a number of objects, in which each permutation differs from its predecessor only by the interchange of two of the objects, are discussed. Details of
Certification of algorithm 323 [G6]: generation of permutations in lexicographic order
This procedure finds all trees that span a nondirected graph on n nodes that are partitioned into two classes, and formalizes the effect of partitioning with respect to nodes i and j.
Remarks on algorithm 87, 102, 130, 202: generation of permutations in lexicographical order
ALGORITHM 308 GENERATION OF PERMUTATIONS IN PSEUDOLEXICOGRAPHIC ORDER [G6] R. J. ORD-SMIT:H (Recd. 11 Nov. 1966, 1 Dec. 1966, 28 Dee. 1966 and 27 Mar. 1967) Computing Laboratory, University of
A simplified loop-free algorithm for generating permutations
A simplification of Ehrlich's loop-free version of Johnson and Trotter's algorithm for generation of all permutations of a set of elements and its validity is proved.