From the Project Euler

*Problem 24:*

A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:

012 021 102 120 201 210

*What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?*

**checked**

very interesting, I have implemented the Steinhaus–Johnson–Trotter algorithm, I found very useful the pages Johnson-Trotter Algorithm Listing All Permutations and Steinhaus Johnson Trotter permutation algorithm explained and implemented in Java

this algorithm is very efficient, only about 2 seconds to find all permutations, ie 10! = 3628800

## Leave a Reply