Сортировка массива методом Хоара - VB
Формулировка задачи:
Не работает сортировка массива методом Хоара. Выводится исходный массив (проверял на пустой форме)
вот сама процедура
и ее вызов (после Option2.value)
В чем может быть дело, ошибок компиляции нет.
Листинг программы
- Public Sub sort_h(ByVal i_n As Integer, ByVal i_k As Integer)
- Dim i As Long, j As Long
- i = i_n: j = i_k: k = ((i + j) \ 2): f = w(k)
- Do
- While w(i) < f: i = i + 1: Wend: While f < w(j): j = j - 1: Wend
- If i <= j Then
- p = w(i): w(i) = w(j): w(j) = p:
- i = i + 1: j = j - 1
- End If
- Loop Until i > j
- If i_n < j Then sort_h i_n, j
- If i < i_k Then sort_h i, i_k
- End Sub
Листинг программы
- Private Sub Command3_Click()
- If X(1) <> "" Then
- Picture1.Cls
- Picture3.Cls
- If Option1.Value Then
- For i = 1 To 10
- For j = 10 To i + 1 Step -1
- If w(i) < w(j) Then
- k = w(i)
- w(i) = w(j)
- w(j) = k
- End If
- Next j
- Next i
- End If
- If Option2.Value Then
- sort_h i_n, i_k
- End If
- For i = 1 To 10
- Picture1.Print w(i)
- Next i
- For o = 1 To 10
- Picture3.Line (0, 0 + 15 * o)-(w(o), 10 + 15 * o), RGB(w(o) + 255, w(o), w(o)), B
- Next
- For i = 1 To 10
- ren = ren + CStr(w(i)) + " "
- Next i
- Else
- pushbutton = MsgBox("Âûáåðèòå Г¬Г*Г±Г±ГЁГў!", 16, "ГЋГёГЁГЎГЄГ*!!!...")
- End If
- End Sub
Решение задачи: «Сортировка массива методом Хоара»
textual
Листинг программы
- sort_h w, 0, Ubound(w)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д