Hola,
Aca envio la rutina de ordenamiento burbuja y otras mas que depronto te
pueden servir.
Alejandro
---8<----- Snip Here ----->8---
Private Sub Bubble_Sort(ByRef SortArray() As Integer)
Dim Temp As Integer, I As Integer, J As Integer
For I = 0 To UBound(SortArray)
For J = 0 To UBound(SortArray)
If SortArray(I) < SortArray(J) Then
Temp = SortArray(I)
SortArray(I) = SortArray(J)
SortArray(J) = Temp
End If
Next J
Next I
End Sub
---8<----- Snip Here ----->8---
Public Sub Selection_Sort(ByRef SortArray() As Integer)
Dim Temp As Integer, Current As Integer, J As Integer
For Current = 0 To UBound(SortArray)
For J = Current + 1 To UBound(SortArray)
If SortArray(Current) > SortArray(J) Then
Temp = SortArray(Current)
SortArray(Current) = SortArray(J)
SortArray(J) = Temp
End If
Next J
Next Current
End Sub
---8<----- Snip Here ----->8---
Public Sub Shell_Sort(ByRef SortArray() As Integer)
Dim Temp As Integer, Gap As Integer, I As Integer
Dim Exchange_Occurred As Boolean
Gap = CInt((UBound(SortArray) + 1) / 2)
Do
Do
Exchange_Occurred = False
For I = 0 To UBound(SortArray) - Gap
If SortArray(I) > SortArray(I + Gap) Then
Temp = SortArray(I)
SortArray(I) = SortArray(I + Gap)
SortArray(I + Gap) = Temp
Exchange_Occurred = True
End If
Next
Loop While Exchange_Occurred
Gap = Gap / 2
Loop While Gap >= 1
End Sub
---8<----- Snip Here ----->8---
Public Sub Quick_Sort(SortArray As Variant, _
ByVal First As Integer, _
ByVal Last As Integer)
Dim Low As Integer, High As Integer
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
---8<----- Snip Here ----->8---
indecopi wrote:
>
> Que tal amigos de la Lista.
>
> Por casualidad algunos de ustedes conoce metodos de ordenamientos. Por ejemplo el famoso método de la burbuja.
>
> Necesito con urgencia sus sugerencias sobre como poder ordenar datos de forma rápida.
>
> Por ejemplo no se si han vistos el explorador de windows, bueno, cuando deseamos encontrar archivos por un tipo determinado o por nombres, lo que hacemos es hacer un click en los botones donde dicen "Tipo" o "Nombre" y se ordena en forma ascendente y se hacemos otro click se ordenan en forma descendente. Este tipo de ordenamiento se hace en forma muy rápida.
>
> Así es que, si hay alguna persona que me pueda dar una ayudadita le estare muy agradecido o podemos intercambiar ideas con otros programas.
>
> Gracias.
>
> Att.
> Nicolás Tacure Ayala
> Jefatura de Informatica de Sistemas
> Indecopi
--
Alejandro Carrascal
Research Assistant
University of Oklahoma
100 East Boyd, Room 562
Norman, Oklahoma 73019
Home: (405) 325-9836 Ext.1
Work: (405) 325-0392
Fax : (405) 325-3180
e-Mail: alejo@ou.edu