Подскажите метод сортировки - VB

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

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

Есть база с игроками, число стабильно 96000 игроков(96 тысяч) т.к. массив организован как статический от 1-го элемента до 32000-го и в каждом таком массиве еще 3... тоесть 32к акков и в каждом по 3 перса... надо сделать топ игроков по уровням или другому параметру, соответственно надо обработать 96 тысяч элементов и отсртировать, например по убыванию...(начальные - самые большие) как можно это сделать? Мне знакома только пузырьковая сортировка, но для такого количества элементов не подойдет (96000^2 это очень много...)

Решение задачи: «Подскажите метод сортировки»

textual
Листинг программы
Public Sub TagSortFast(ByRef A, ByVal N As Long)
    Dim I As Long
    Dim J As Long
    Dim K As Long
    Dim T As Long
    Dim Tmp As Double
    Dim TmpR As Double
 
    
    '
    ' Special cases
    '
    If N <= 1# Then
        Exit Sub
    End If
    
    '
    ' General case, N>1: sort, update B
    '
    I = 2#
    Do
        T = I
        Do While T <> 1#
            K = T \ 2#
            If A(K - 1#) >= A(T - 1#) Then
                T = 1#
            Else
                Tmp = A(K - 1#)
                A(K - 1#) = A(T - 1#)
                A(T - 1#) = Tmp
                T = K
            End If
        Loop
        I = I + 1#
    Loop Until Not I <= N
    I = N - 1#
    Do
        Tmp = A(I)
        A(I) = A(0#)
        A(0#) = Tmp
        T = 1#
        Do While T <> 0#
            K = 2# * T
            If K > I Then
                T = 0#
            Else
                If K < I Then
                    If A(K) > A(K - 1#) Then
                        K = K + 1#
                    End If
                End If
                If A(T - 1#) >= A(K - 1#) Then
                    T = 0#
                Else
                    Tmp = A(K - 1#)
                    A(K - 1#) = A(T - 1#)
                    A(T - 1#) = Tmp
                    T = K
                End If
            End If
        Loop
        I = I - 1#
    Loop Until Not I >= 1#
End Sub

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


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

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

10   голосов , оценка 4.2 из 5
Похожие ответы