Resumen Ordenación. Método de la burbuja

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



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com