Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница:

 

  Вопрос: И опять QuickSort Добавлено: 14.03.04 01:57  

Автор вопроса:  Logot | ICQ: 305396405 

Программисты помогите с быстрой сортировкой. Учусь и хочу её сам написать, но застрял на рекурсии. Кратко объясню как я пишу: функция QuickSort получает в качестве параметров массив(целых чисел), нижнюю границу массива и верхнюю границу массива. Функция Decomposition вызывается из функции QuickSort и принимает 4 параметра (массив, опорный индекс, нижнюю границу, верхнюю границу.Процедура Decomposition определяет окончательную позицию опорного элемента (опорным элементом в начале служит значение с индексом 0) в отсортированном массиве и возвращает индекс этого элемента. Этот индекс разделяет массив на два подмассива (все значения, которые меньше этого опорного элемента и все значения, которые больше опорного значения). Далее вызывается рекурсивная процедура. И тут я остановился. Вот то, что я пишу в процедуре QuickSort:
  Public Function QuickSort(ByVal QArray As Integer(), ByVal InLower As Integer, ByVal InUpper As Integer) As Integer
    Dim Elements As Integer
    Elements = Decomposition(QArray, InLower, InLower, InUpper)
    If Elements >= 2 AndAlso Elements <= QArray.GetUpperBound(0) - 2 AndAlso Not InLower = Elements Then
      QuickSort(QArray, InLower, Elements-1)
      QuickSort(QArray,  Elements+1, InUpper)
    End If
  End Function
Скажите, что я делаю не так. Если можно примерчик на VB.Net или VB.6. Мне уже присылали пример полного алгоритма быстрой сортировки на C, но я посмотрел этот код как "баран на новые ворота" и мало, что понял.
Заранее благодарен за любую малейшую помощь.

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам