Подскажите метод сортировки - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д