seri / permutations

Implementations of various generating permutations algorithms in some common languages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Problem

Given n, generate all permutations from the string of size n that starts with 'a' to char('a' + n)

Solutions

Benchmarking

Benchmarking is done for n = 11. Time measured in seconds.

On my desktop

Algorithm C++ Lua Haskell
HeapPermute 3 54
Exeter 3 59
Bogomolny 7 60
Spreading 8 63
JohnsonTrotter 9 71
InverseSelect 15 70
Factoradic 21 84
Builtin 7 16
Injection 19
Select 22

On my laptop

Algorithm C++ Lua Haskell
HeapPermute 44
Exeter 25
Bogomolny 26
Spreading 29
JohnsonTrotter 26
InverseSelect 42
Factoradic 51
Builtin 44
Injection 46
Select 49

Remarks

  • HeapPermute is fastest
  • Haskell's performance is better than expected

Todo

  • Explain HeapPermute

About

Implementations of various generating permutations algorithms in some common languages


Languages

Language:C++ 54.2%Language:Lua 29.9%Language:Haskell 9.9%Language:Shell 6.0%