Академический Документы
Профессиональный Документы
Культура Документы
Es la operacin de arreglar los registros de una tabla en algn orden secuencial de acuerdo a un criterio de ordenamiento. El ordenamiento se efecta con base en el valor de algn campo en un registro. El propsito principal de un ordenamiento es el de facilitar las bsquedas de los miembros del conjunto ordenado. Ej. de ordenamientos: Dir. telefnico, tablas de contenido, bibliotecas y diccionarios, etc. El ordenar un grupo de datos significa mover los datos o sus referencias para que queden en una secuencia tal que represente un orden, el cual puede ser numrico, alfabtico o incluso alfanumrico, ascendente o descendente. Cundo conviene usar un mtodo de ordenamiento? Cuando se requiere hacer una cantidad considerable de bsquedas y es importante el factor tiempo.
MTODO BURBUJA.
El bubble sort, tambin conocido como ordenamiento burbuja, funciona de la siguiente manera: Se recorre el arreglo intercambiando los elementos adyacentes que estn desordenados. Se recorre el arreglo tantas veces hasta que ya no haya cambios. Prcticamente lo que hace es tomar el elemento mayor y lo va recorriendo de posicin en posicin hasta ponerlo en su lugar.
Tiempo de ejecucin del algoritmo burbuja: Para el mejor caso (un paso) O(n) Peor caso n(n-1)/2 Promedio O(n2)
Nota importante. Este algottmo no es el mas indicado para realizar ordenacin de datos,
ya que en comparacin a otros mtodos es lento. Lo que si es un mtodo fcil de entender. En el cdigo, se utiliza un control Listbox para cargar algunos valores no numricos y a la vez se asignan estos a un vector. Luego al llamar a la rutina Ordenar, se ordenar en forma alfabtica y ascendente. Por ltimo se cargan los datos ordenados en un List2.
Formulario:
Cdigo en un Fom: 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. ' \\ -- Botn 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
Ejemplo 2
Primeramente se cargan en forma aleatoria unos nmeros 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.