Dim i As Long, j As Long

Dim x, y AS single

i = k

j = p

x = массив((k + p) / 2)

Do While (i <= j)

Do While (массив(i) < x And i < p)

i = i + 1

Loop

Do While (x < массив(j) And j > k)

j = j - 1

Loop

If (i <= j) Then

y = массив(i)

массив(i) = массив(j)

массив(j) = y

i = i + 1

j = j - 1

End If

Loop

If (k < j) Then быстро массив, k, j ‘ Рекурсивный вызов функции

If (i < p) Then быстро массив, i, p

End Function

По нажатию кнопки пишем процедуру:

Private Sub Кнопка0_Click()

Dim массив() As Variant

Dim test As Boolean

массив = Array(4, 12, 3, 7, 9, 1)

For i = LBound(массив) To UBound(массив)

s = s & массив(i) & " "

Next i

Поле1.Value = s

Call быстро(массив, LBound(массив), UBound(массив)) ‘ вызов функции

s = " "

For i = LBound(массив) To UBound(массив)

s = s & массив(i) & " "

Next i

Поле3.Value = s

End Sub

Задачи поиска рассматривались выше.

При работе с объектами задачи сортировки теряют свою актуальность, так как можно использовать объект список (ListBox) и метод Sort.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: