Форум продуктов IBM Lotus

Общие вопросы => Разработка приложений => Тема начата: Sergey_st85 от 30 Сентябрь 2009, 13:57:18

Название: Подскажите аналог @sort для LS!!!
Отправлено: Sergey_st85 от 30 Сентябрь 2009, 13:57:18
Надо массив отсортировать, он большой, в поле док-та не влезет, чтобы я мог @sort выполнить.


ИЛИ вопрос: как LS-архив Array5 засунуть в @sort, она же в Evaluate будет...

Ранее всегда так делал:

Call dlg.ReplaceItemValue("array_bases",array_bases)
   array_bases=Evaluate({@sort(array_bases;[DESCENDING])},dlg)


Я не хочу использовать метод пузырика!!!

Function QuickSort(arr)
    On Error Resume Next
    Print "Выполняется сортировка..."
    Dim count%, span%, j%, i%
    Dim vtemp
    Forall x In arr
        count%=count%+1
    End Forall
    If count% > 0 Then
        span% = count% \ 2
        Do While span% > 0
            For i% = span% To count% -1
                For j% = (i% - span% + 1) To 1 Step -span%
                    If arr(j%-1) > arr(j%+span%-1) Then
                        vtemp = arr(j%-1)
                        arr(j%-1) = arr(j%+span%-1)
                        arr(j%+span%-1) = vtemp
                    End If
                Next j%
            Next i%
            span% = span% \ 2
        Loop
    End If
    Print
End Function