Documento Metodo de Burbuja

  • Published on
    11-Feb-2015

  • View
    18

  • Download
    8

Transcript

Algoritmo de ordenamiento mtodo de burbujaMateria: Matemticas discretas II Profesor(a): Criseida Martinez Gomez Integrantes del equipo: Eduardo lara Montes Matricula:12011219 Jesus Alberto Roque Ortiz Matricula 12011459Fecha de entrega: 8 de abril del 2013IntroduccinLa Ordenacin de burbuja o Bubble Sort en ingls es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambindolos de posicin si estn en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten ms intercambios, lo cual significa que la lista est ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeas "burbujas". Tambin es conocido como el mtodo del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparacin, siendo el ms sencillo de implementar. Descripcin: Una manera simple de expresar el ordenamiento de burbuja en pseudocdigo es la siguiente: Este algoritmo realiza el ordenamiento de una lista a de n valores, en este caso de n trminos numerados del 0 al n-1, consta de dos bucles anidados uno con el ndice i, que da un tamao menor al recorrido de la burbuja en sentido inverso de 2 a n, y un segundo bucle con el ndice j, con un recorrido desde 0 hasta n-i, para cada iteracin del primer bucle, que indica el lugar de la burbuja. La burbuja son dos trminos de la lista seguidos, j y j+1, que se comparan, si el primero es menor que el segundo sus valores se intercambian. Esta comparacin se repite en el centro de los dos bucles, dando lugar a la postre a una lista ordenada, puede verse que el nmero de repeticiones sola depende de n, y no del orden de los trminos, esto es, si pasamos al algoritmo una lista ya ordenada, realizara todas las comparaciones exactamente igual que para una lista no ordenada, esta es una caracterstica de este algoritmo.Option Explicit '\\ -- Se declara la variante como Vector Dim Vector() As Variant ' -------------------------------------------------------------------------------' \\ -- Se d el Inicio del Programa, nombrando las herramientas que se programaran. ' -------------------------------------------------------------------------------Private Sub Form_Load() Command1.Caption = " Ordenar Letras " Command2.Caption = " Cargar Letras " Command1.Enabled = False End Sub ' -------------------------------------------------------------------------------' \\ -- Se programan los Botnes 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 ' -------------------------------------------------------------------------------' \\ -- Se programa para Cargar valores en el List1 ' -------------------------------------------------------------------------------Private Sub Command2_Click() Command2.Enabled = False Command1.Enabled = True Call Cargar_ArrayEnd Sub ' -------------------------------------------------------------------------------' \\ -- BubbleSort - Sub para ordenar el vector ' -------------------------------------------------------------------------------Private Sub Ordenar() Dim iMin As Long Dim iMax As Long Dim Vectemp As String 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)' -- variable temporalFor i = 0 To List1.ListCount - 1 Vector(i) = List1.List(i) Next i End SubBibliografahttp://www.ecured.cu/index.php/M%C3%A9todo_burbuja http://es.wikipedia.org/wiki/Ordenamiento_de_burbuja http://wisedotnet.blogspot.mx/2008/04/metodo-burbuja-en-vbnet.html http://www.forosdelweb.com/f29/b-metodo-burbuja-vb-clasico-net-b-776183/