Algoritmo de Heap

[1]​ El algoritmo minimiza movimiento: genera cada permutación de la anterior intercambiando un par de elementos; los otros N−2 elementos no se alteran.

Realizamos los siguientes pasos repetidamente hasta que i es igual a N. Utilizamos el algoritmo para generar el (N − 1)!

Esto genera todas las permutaciones que terminan con el último elemento.

Entonces si N es impar, cambiamos el primero elemento y el último, mientras que si N es par podemos cambiar el i-ésimo elemento y el último (no hay ninguna diferencia entre N par e impar en la primera iteración).

En cada iteración, el algoritmo producirá todas las permutaciones que terminan con el elemento que acaba de ser movido a la "última" posición.

Un mapa de las 24 permutaciones y los 23 intercambios utilizados en Algoritmo de Heap permuting las cuatro letras A (ámbar), B (azul), C (ciánico) y D (rojo oscuro)