El Algoritmo de Heap genera todas las permutaciones  posibles de N objetos. Fue propuesto por primera vez por B. R. Heap En 1963.[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. En una revisión de 1977 de algoritmos generadores de permutación, Robert Sedgewick concluyó que sea en aquel tiempo el algoritmo más eficaz para generar permutaciones por computadora.[2]​