Вы находитесь на странице: 1из 4

Algoritmos de Ordenamiento Qu es ordenamiento?

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.

Clasificacin de los algoritmos de ordenamiento de informacin:


El hecho de que la informacin est ordenada, nos sirve para poder encontrarla y accesarla de manera ms eficiente ya que de lo contrario se tendra que hacer de manera secuencial. A continuacin se describirn 4 grupos de algoritmos para ordenar informacin: Algoritmos de insercin: Algoritmos de intercambio: Algoritmos de seleccin: Algoritmos de enumeracin: En este tipo de algoritmos cada elemento es comparado contra los dems. En la comparacin se cuenta cuntos elementos son ms pequeos que el elemento que se est analizando, generando as una ENUMERACION. El nmero generado para cada elemento indicar su posicin. Los mtodos simples son: Insercin (o por insercin directa), seleccin, burbuja y shell, en dnde el ltimo es una extensin al mtodo de insercin, siendo ms rpido. Los mtodos ms complejos son el quick-sort (ordenacin rpida) y el heap sort. A continuacin se mostrarn los mtodos de ordenamiento ms simples.

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.

Procedimiento Bubble Sort


paso 1: paso 2: paso 4: paso 5: Swap(a, paso 7: End. [Inicializa i al final de arreglo] [Inicia desde la segunda pos.] [Si a[j-1] es mayor que el que le sigue] [Los intercambia] j-1, j). [Fin] For i <- N down to 1 do For j <- 2 to i do If a[j-1] < a[j] then

Tiempo de ejecucin del algoritmo burbuja: Para el mejor caso (un paso) O(n) Peor caso n(n-1)/2 Promedio O(n2)

Ejemplos en Visual Basic con el mtodo de ordenamiento Bubble Sort:


Ejemplo 1
Este ejemplo ordena un array o vector usando el mtodo de ordenacin llamado Burbuja o Bubble Sort.

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:

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

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.

Вам также может понравиться