Newsgroup: it.comp.lang.visual-basic
Titolo: ordinare in modo alfabetico un array

ciao a tutti 
qualcuno sa dirmi come posso fare ad ordinare dinamicamente un array in
ordine alfabetico
es..
verdi mario
rossi roberto
bianchi giulio
quindi farli diventare all'interno di un array:
bianchi giulio
rossi roberto
verdi mario
grazie e ciao
____________________
Cannatelli Fabrizio
Softlab.C...@alitalia.it
 
ced corpo basso
tel. 0665625697
-- 
Posted from 
azmail.alitalia.it
 [151.99.175.120] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Newsgroups: it.comp.lang.visual-basic
Subject: [BUG] Quicksort
Date: Wed, 15 Dec 1999 13:09:05 GMT
riposto qui di seguito il codice corretto;
bye
' esempio:
' per ordinare un array di stringhe X dalla posizione 1 alla posizione
10
' con verso crescente:
'   QuickSort X(), False, 1, 10
' per ordinare un array di stringhe X dalla posizione 0 alla posizione
100
' con verso decrescente:
'   QuickSort X(), True, 0, 100
Public Sub QuickSort(SortArray() As String, flgMode As Boolean, Low As
Integer, High As Integer)
    Dim RandIndex As Integer
    Dim i As Integer, j As Integer
    Dim Partition As String
    If (Low = -1) And (High = -1) Then
        Low = LBound(SortArray)
        High = UBound(SortArray)
    End If
    If Low < High Then
        If High - Low = 1 Then
            If Compare(SortArray(Low), SortArray(High), Not flgMode)
Then
                Swap SortArray(Low), SortArray(High)
            End If
        Else
            RandIndex = RandInt(Low, High)
            Swap SortArray(High), SortArray(RandIndex)
            Partition = SortArray(High)
            Do
                i = Low: j = High
' ===> BUG  Do While (i < j) And Compare(SortArray(i), Partition,
flgMode)
                Do While (i < j) And Not Compare(SortArray(i),
Partition, Not flgMode)
                    i = i + 1
                Loop
' ===> BUG  Do While (j > i) And Compare(SortArray(j), Partition, Not
flgMode)
                Do While (j > i) And Not Compare(SortArray(j),
Partition, flgMode)
                    j = j - 1
                Loop
                If i < j Then
                    Swap SortArray(i), SortArray(j)
                End If
            Loop While i < j
            Swap SortArray(i), SortArray(High)
            If (i - Low) < (High - i) Then
                QuickSort SortArray, flgMode, Low, i - 1
                QuickSort SortArray, flgMode, i + 1, High
            Else
                QuickSort SortArray, flgMode, i + 1, High
                QuickSort SortArray, flgMode, Low, i - 1
            End If
        End If
    End If
End Sub
Private Sub Swap(x As String, y As String)
    Dim z As String
    z = x: x = y: y = z
End Sub
Private Function Compare(x As String, y As String, flgMode As Boolean)
As
Boolean
    Compare = ((x < y) And (Not flgMode)) Or ((x > y) And (flgMode))
End Function
Private Function RandInt(Lower As Integer, Upper As Integer) As Integer
    Static flgYetInit As Boolean
    If Not flgYetInit Then
        Randomize Timer
        flgYetInit = True
    End If
    RandInt = Int(Rnd * (Upper - Lower + 1)) + Lower
End Function

Aspetta aspetta...
Vuoi dire che l'ordina.zip sul NG é bacato? :-(
        Ciao
                Allanon