Está en la página 1de 3

Ejemplo 1

Este ejemplo ordena un array o vector usando el m�todo de ordenaci�n llamado


Burbuja o Bubble Sort.

Nota importante. Este algot�tmo no es el mas indicado para realizar ordenaci�n de


datos, ya que en comparaci�n a otros m�todos es lento. Lo que si es un m�todo f�cil
de entender. ( Al final de la p�gina hay enlaces para utilizar otros m�todos).
Tambi�n puedes mirar esta p�gina donde hay una tabla que demuestra algunos
conceptos a la hora de poder elegir entre los m�todos de ordenaci�n mas
convenientes seg�n la tarea que debamos realizar: Ver p�gina web

En el c�digo, se utiliza un control Listbox para cargar algunos valores no


num�ricos y a la vez se asignan estos a un vector. Luego al llamar a la rutina
Ordenar, se ordenar� en forma alfab�tica y ascendente. Por �ltimo se cargan los
datos ordenados en un List2.

Ejemplo

* Colocar un List1
* Un List2
* Dos botones (Command1 y Command2 )

C�digo en un Fom

Texto planoImprimir

1. Option Explicit
2.
3. ' -- Vector para los datos
4. Dim Vector() As Variant
5.
6. '
--------------------------------------------------------------------------------
7. ' \\ -- Inicio
8. '
--------------------------------------------------------------------------------
9. Private Sub Form_Load()
10. Command1.Caption = " Ordenar Vector "
11. Command2.Caption = " Cargar Vector "
12. Command1.Enabled = False
13. End Sub
14.
15. '
--------------------------------------------------------------------------------
16. ' \\ -- Bot�n para Ordenar el array y cargar los valores en el List2
17. '
--------------------------------------------------------------------------------
18. Private Sub Command1_Click()
19. Dim i As Integer
20.
21. Call Ordenar
22. List2.Clear
23.
24. For i = 0 To UBound(Vector)
25. List2.AddItem Vector(i)
26. Next i
27. Command1.Enabled = False
28. End Sub
29.
30. '
--------------------------------------------------------------------------------
31. ' \\ -- Cargar valores en el List1
32. '
--------------------------------------------------------------------------------
33. Private Sub Command2_Click()
34. Command2.Enabled = False
35. Command1.Enabled = True
36.
37. Call Cargar_Array
38. End Sub
39. '
--------------------------------------------------------------------------------
40. ' \\ -- BubbleSort - Sub para ordenar el vector
41. '
--------------------------------------------------------------------------------
42. Private Sub Ordenar()
43.
44. Dim iMin As Long
45. Dim iMax As Long
46. Dim Vectemp As String ' -- variable temporal
47. Dim Pos As Long
48. Dim i As Long
49.
50. iMin = LBound(Vector)
51. iMax = UBound(Vector)
52.
53. While iMax > iMin
54. Pos = iMin
55. For i = iMin To iMax - 1
56. If Vector(i) > Vector(i + 1) Then
57. Vectemp = Vector(i + 1)
58. Vector(i + 1) = Vector(i)
59. Vector(i) = Vectemp
60. Pos = i
61. End If
62. Next i
63. iMax = Pos
64. Wend
65. End Sub
66.
67. '
---------------------------------------------------------------------------------
68. ' \\ -- Sub cargar valores de ejemplo en el array y en el control de lista
69. '
---------------------------------------------------------------------------------
70. Private Sub Cargar_Array()
71. Dim i As Integer
72.
73. ' -- Listbox
74. With List1
75. .AddItem "A"
76. .AddItem "H"
77. .AddItem "B"
78. .AddItem "G"
79. .AddItem "C"
80. .AddItem "F"
81. .AddItem "D"
82. End With
83.
84. ' -- Array
85. ReDim Vector(List1.ListCount - 1)
86. For i = 0 To List1.ListCount - 1
87. Vector(i) = List1.List(i)
88. Next i
89. End Sub

Option Explicit ' -- Vector para los datos Dim Vector() As Variant '
--------------------------------------------------------------------------------
' \\ -- Inicio '
--------------------------------------------------------------------------------
Private Sub Form_Load() Command1.Caption = " Ordenar Vector " Command2.Caption = "
Cargar Vector " Command1.Enabled = False End Sub '
--------------------------------------------------------------------------------
' \\ -- Bot�n para Ordenar el array y cargar los valores en el List2 '
--------------------------------------------------------------------------------
Private Sub Command1_Click() Dim i As Integer Call Ordenar List2.Clear For i = 0 To
UBound(Vector) List2.AddItem Vector(i) Next i Command1.Enabled = False End Sub '
--------------------------------------------------------------------------------
' \\ -- Cargar valores en el List1 '
--------------------------------------------------------------------------------
Private Sub Command2_Click() Command2.Enabled = False Command1.Enabled = True Call
Cargar_Array End Sub '
--------------------------------------------------------------------------------
' \\ -- BubbleSort - Sub para ordenar el vector '
--------------------------------------------------------------------------------
Private Sub Ordenar() Dim iMin As Long Dim iMax As Long Dim Vectemp As String ' --
variable temporal Dim Pos As Long Dim i As Long iMin = LBound(Vector) iMax =
UBound(Vector) While iMax > iMin Pos = iMin For i = iMin To iMax - 1 If Vector(i) >
Vector(i + 1) Then Vectemp = Vector(i + 1) Vector(i + 1) = Vector(i) Vector(i) =
Vectemp Pos = i End If Next i iMax = Pos Wend End Sub '
--------------------------------------------------------------------------------- '
\\ -- Sub cargar valores de ejemplo en el array y en el control de lista '
---------------------------------------------------------------------------------
Private Sub Cargar_Array() Dim i As Integer ' -- Listbox With List1 .AddItem "A"
.AddItem "H" .AddItem "B" .AddItem "G" .AddItem "C" .AddItem "F" .AddItem "D" End
With ' -- Array ReDim Vector(List1.ListCount - 1) For i = 0 To List1.ListCount - 1
Vector(i) = List1.List(i) Next i End Sub

Ejemplo 2

Proyecto enviado por Juan Paz, similar al visto anteriormente, donde primeramente
se cargan en forma aleatoria unos n�meros en un array y al mismo tiempo en un
listbox ( el de la izquierda ).

Luego para ordenar se llama a la rutina Bubble sort , enviando como argumento el
vector anterior para ordenarlo.

Descargar proyecto vb

vista previa del formulario con el ejemplo en vb para usar el metodo de bubble sort

También podría gustarte