permutation generator help.

C

chandrans

I have come across this permutation generator code. But doesn'
understand it
Can anybody explain how this works?
where x will be the string input and y will be initially ""
Sub GetPermutation(x As String, y As String)
' The source of this algorithm is unknown

Dim i As Integer, j As Integer
j = Len(y)
If j < 2 Then
Cells(CurrentRow, 1) = x & y
CurrentRow = CurrentRow + 1
Else
For i = 1 To j
Call GetPermutation(x + Mid(y, i, 1), Left(y, i - 1)
Right(y, j - i))
Next
End If
End Su
 
K

keepITcool

it's a recursive procedure. (which calls itself)
NOTE the description you give of the initial arguments s/b reversed!

to run it you'd call it like:

Dim currentrow As Long

Sub Foo()
currentrow = 1
Call GetPermutation("", "ABCDEF")
End Sub

and it will run the 720 (=PERMUT(6,5) permutations of the
letters "A thru F"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top