Не работает QuickSort - VB

Узнай цену своей работы

Формулировка задачи:

Скажем так написал быструю сортировку, вроде по правилам, но как не странно она у меня не работает). Помогите разобраться.
Листинг программы
  1. Sub sort(l, r)
  2. i = l: j = r
  3. x = a(Int((l + r) / 2))
  4. While i <= j
  5. While a(i) < x
  6. i = i + 1
  7. Wend
  8. While x < a(j)
  9. j = j - 1
  10. Wend
  11. If i <= j Then
  12. p= a(i): a(i) = a(j): a(j) = p
  13. i = i + 1: j = j - 1
  14. End If
  15. Wend
  16. If l < j Then Call sort(l, j)
  17. If i < r Then Call sort(i, r)
  18. End Sub
чуть чуть изменил Теперь Out of stack space больше не выходит)
Листинг программы
  1. Sub sort(ByVal l, r)
  2. i = l: j = r
  3. x = a(Int((l + r) / 2))
  4. Do
  5. While a(i) < x
  6. i = i + 1
  7. Wend
  8. While x < a(j)
  9. j = j - 1
  10. Wend
  11. If i <= j Then
  12. w = a(i): a(i) = a(j): a(j) = w
  13. i = i + 1: j = j - 1
  14. End If
  15. Loop Until (i > j)
  16. If l < j Then Call sort(l, j)
  17. If i < r Then Call sort(i, r)
  18. End Sub

Решение задачи: «Не работает QuickSort»

textual
Листинг программы
  1. Sub sort(l, r)
  2.   i = l: j = r
  3.   x = A(Int((l + r) / 2))
  4.   While i < j
  5.     While A(i) < x
  6.        i = i + 1
  7.     Wend
  8.     While x < A(j)
  9.       j = j - 1
  10.     Wend
  11.     If i <= j Then
  12.        p = A(i): A(i) = A(j): A(j) = p
  13.        i = i + 1: j = j - 1
  14.     End If
  15.   Wend
  16.   If Abs(l - i) > 2 Then sort l, i
  17.   If Abs(r - i) > 2 Then sort i, r
  18. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут