Sub SortArray(strArray() As String)
Dim lngIncr As Long Dim lngIelem1 As Long Dim lngIelem2 As Long Dim lngI As Long Dim strHold As String lngIncr = UBound(strArray) \ 2 Do If lngIncr = 0 Then Exit Sub For lngI = lngIncr + 1 To UBound(strArray) lngIelem1 = lngI - lngIncr SortArray1: If lngIelem1 > 0 Then lngIelem2 = lngIelem1 + lngIncr If strArray(lngIelem1) > strArray(lngIelem2) Then ' switch elements strHold = strArray(lngIelem1) strArray(lngIelem1) = strArray(lngIelem2) strArray(lngIelem2) = strHold lngIelem1 = lngIelem1 - lngIncr GoTo SortArray1 End If End If Next lngIncr = lngIncr \ 2 Loop End Sub Il Bubble Sort ha il grosso vantaggio di poche righe di codice. Ma c'e' un altro sort che uso da anni per un 'quick-and-dirty' sort che si chiama Shell Sort. Non arriva alle prestazioni di un Quick Sort - ma quasi. Ha il vantaggio di necessitare poche righe di codice. In piu', non degrada come il Qick Sort (fatto senza precauzioni) quando gli elementi sono gia' (o quasi) ordinati. Scusate infinitivamente il GOTO - ma qualche volta serve veramente. |