|
Тема |
Re: още малко помощ за масив [re: 4o4okal] |
|
Автор |
Sargon lll () |
|
Публикувано | 14.05.09 11:18 |
|
|
Private Sub permutation(ByVal perm As Integer)
Dim x, count As Integer
If perm = 1 Then
For x = 1 To n
Result.Text = Result.Text + Str(data(x))
Next
Result.Text = Result.Text + vbCr
Else
permutation(perm - 1)
For count = 1 To perm - 1
x = data(count) : data(count) = data(perm) : data(perm) = x
permutation(perm - 1)
x = data(count) : data(count) = data(perm) : data(perm) = x
Next
End If
End Sub
data(n) е масив с n числа, perm е броят на числата от масива, които трябва да се пермутират. За пермутиране на целия масив подпрограмата се извиква като permutation(n). В случая числата в масива са цели, но алгоритъмът е подходящ и за друга ситуация. Фактически, след If perm = 1 Then се изпълнява алгоритъм при открита нова пермутация, в случая тя се изписва, като се показват елементите на целия масив.
|
| |
|
|
|