An Efficient Algorithm for Permutation Iteration Using a Singly Linked List
Abstract
We present a new algorithm for iterating over all permutations of a sequence. The algorithm leverages elementary operations on recursive lists. Within each recursive call, only two operations are required to generate all permutations (albeit in an unusual order): swapping the first two elements of the list or moving the last element to the front. As a result, no new nodes are allocated during the computation. Instead, all elements are rearranged within the original nodes of the singly linked list throughout the process. A proof of concept written in the Lisp programming language is proposed and discussed.
- Publication:
-
arXiv e-prints
- Pub Date:
- January 2025
- arXiv:
- arXiv:2501.10102
- Bibcode:
- 2025arXiv250110102B
- Keywords:
-
- Computer Science - Data Structures and Algorithms;
- Computer Science - Discrete Mathematics;
- Mathematics - Combinatorics