function permutationsHeap(elements) { const indexes = new Array(elements.length); const permutations = [elements.slice()];
for (let i = 0; i < elements.length; i++) { indexes[i] = 0; }
for (let i = 0; i < elements.length; ) { if (indexes[i] < i) { let swapFrom = 0; if (i % 2 !== 0) { swapFrom = indexes[i]; }
const temp = elements[swapFrom]; elements[swapFrom] = elements[i]; elements[i] = temp;
permutations.push(elements.slice()); indexes[i]++; i = 0; } else { indexes[i] = 0; i++; } }
return permutations;}
export default permutationsHeap;