Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
26.03.2015
Размер:
75.78 Кб
Скачать

Сортировка парный обмен (алгоритм )

Используемые переменные: А – массив данных; N – длина массива;

Pr – флаг просмотров (1 – нечетный, 2 – четный);

C – число обменов; S - рабочая ячейка.

Private Sub ÏÎ_Click()

Dim i, c As Byte

Dim pr As Byte

' Сортировка парный обмен

pr = 1

10: c = 0

If pr = 1 Then i = 1 Else i = 2

Do While i < n

If a(i) > a(i + 1) Then

s = a(i + 1)

a(i + 1) = a(i)

a(i) = s

c = c + 1

End If

i = i + 2

Loop

If pr = 1 Then pr = 2 Else pr = 1

If c <> 0 Then GoTo 10

End Sub

Сортировка стандартный обмен (алгоритм )

Используемые переменные: А – массив данных; N – длина массива;

К – счетчик проходов; C – число обменов;

S - рабочая ячейка.

Private Sub Stand_obmen_Click()

Dim k, i, c As Byte ' Стандартный обмен

k = 1

c = 0

10: For i = 1 To n - k

If a(i) > a(i + 1) Then

s = a(i + 1)

a(i + 1) = a(i)

a(i) = s

c = c + 1

End If

Next

If c > 0 Then

k = k + 1

c = 0

GoTo 10

End If

End Sub

Сортировка методом просеивания (алгоритм )

Используемые переменные: А – массив данных; N – длина массива;

P1, P2– индексы первичного сравнения;

V1, V2– индексы вторичного сравнения;

S - рабочая ячейка.

Private Sub Par__obmen _Click()

Dim i, c As Byte

Dim pr As Byte ' Парный обмен

pr = 1

10: c = 0

If pr = 1 Then i = 1 Else i = 2

Do While i < n

If a(i) > a(i + 1) Then

s = a(i + 1)

a(i + 1) = a(i)

a(i) = s

c = c + 1

End If

i = i + 2

Loop

If pr = 1 Then pr = 2 Else pr = 1

If c <> 0 Then GoTo 10

End Sub

Private Sub P_sort_Click()

Dim i, c As Byte

Dim p1, p2 As Byte ‘ Сортировка просеиванием

p1 = 1

p2 = 2

Do While p1 < n

If a(p1) > a(p2) Then

s = a(p2)

a(p2) = a(p1)

a(p1) = s

v1 = p1 - 1

v2 = p1

2: If v1 = 0 Then

p1 = p2

p2 = p2 + 1

ElseIf a(v1) > a(v2) Then

s = a(v2)

a(v2) = a(v1)

a(v1) = s

v1 = v1 - 1

v2 = v2 - 1

GoTo 2

Else

p1 = p2

p2 = p2 + 1

End If

Else

p1 = p1 + 1

p2 = p2 + 1

End If

Loop

End Sub

1

Соседние файлы в папке Методика