Sei sulla pagina 1di 6

Hecho por Ismael Crdenas Materia: Software

METODO DE ORDENACION BURBUJA



En que consiste el mtodo, consiste en la ordenacin un arreglo de n elemento mediante
la comparacin de los elementos adyacentes si estn desordenados se intercambian de
lugar, las comparaciones se realizan hasta que se encuentre todo el arreglo de elementos
ordenados.
CONCEPTOS BASICOS
Arreglo (Array).- Son estructuras de datos del mismo tipo ordenados por que se
almacenan de manera consecutiva en la memoria.
Ejemplo:
A=[5,7,8,0]
Es un arreglo con 4 elementos de tipo numrico entero, podemos decir que es un arreglo
A[4], podemos acceder de manera individual a cada elemento de un arreglo indicando la
posicin en la que se encuentra, ejemplo:
A(0)=5, A(1)=7 , A(2)= 8, A(3)=0
De esta manera podemos modificar el valor de cada elemento de manera individual
indicando la posicin dentro del arreglo.
Registro Auxiliar (AUX o Temporal).- En esta variable copiaremos el valor de otra
variable para almacenarlo de manera temporal, es utilizada en casos donde queremos
modificar la misma variable pero deseamos conservar su valor.
X1= 5; Tenemos el valor 5 a la variable X1
Aux= X1; Si deseamos mantener ese valor y no perderlo al modificar la variable lo
guardamos aqu
X1=X1( Que vale 5 ) + 7 ; Ahora X1 tendr el valor 5+7=12
X2= Aux ; Retomamos el valor almacenado X1 y se lo asignamos a X2= 5

ESTRUCUTRAS FOR.- Es una estructura de control que nos permite repetir o realizar
una determinada cantidad de veces una instruccin y generalmente evala una variable
para determinar la cantidad de veces que se repetir
For I =0 (donde inicializa en 0) to numero asignado
(Hasta n. veces, evala si est dentro de los argumentos, si cumple la condicin ejecuta
las instrucciones que estn dentro de la estructura FOR)
Instrucciones a ejecutarse
next

Hecho por Ismael Crdenas Materia: Software
ESTRUCTURA IF.- Si se cumple la condicin establecida ejecuta las lneas de cdigo, si
no se cumple no realiza nada o salta la estructura.
IF A=B THEN
C=5
ENDIF
La manera en cmo funciona el algoritmo de este mtodo es la siguiente
























Inicio
Ingresamos los datos del
arreglo y almacenamos
Inicializamos la variable auxiliar
con valor = 0, se proceden a los
FOR anidados
IF A(j)
>
A(j+1)
aux = Array(j)
Array(j) = Array(j + 1)
Array(j + 1) = aux
J = nmero de
elementos - 2
I = nmero de
elementos - 1
IMPRIMIOS EL
ARREGLOS
ORDENADO
FIN
NO
NO
NO
SI
SI
SI
Hecho por Ismael Crdenas Materia: Software
EJEMPLO.-
PROGRAMA VISUAL BASIC PARA 4 ELEMENTOS


Public Class Form1

'Evento se produce cuando el botos de salir es presionado
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles
Button2.Click
End 'Instruccion finaliza la ejecucion del programa

End Sub

'Evento se produce cuando presionamos el boton de ordenar
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click

'Valores enteros obtenidos de los textboxs
Dim A0 = Val(TextBox1.Text)
Dim A1 = Val(TextBox2.Text)
Dim A2 = Val(TextBox3.Text)
Dim A3 = Val(TextBox4.Text)

Clear_list() ' Mando a llamar la funcion creada para limpiar los listbox
donde se imprimen los arreglos

'Declaracion del arreglo de 4 elementos desde 0 hasta 3 como tipo entero
Dim Array(3) As Integer

Array(0) = A0
Array(1) = A1
Array(2) = A2
Array(3) = A3

'Imprime los valores dentro de un listbox para que visualice el arreglo
desordenado
For num As Integer = 0 To Array.Length - 1
arreglo.Items.Add(Array(num))
Next

'Inicializa la variable auxiliar con valor= 0 para que no modifique ningun
valor y este por decirlo vacia
'listo para recibir un valor
Dim aux As Integer = 0

' FOR para I en el cual nos permite definir el numero de pasadas necesarias
For i As Integer = 0 To Array.Length - 1

'FOR para J el cual permite ir avanzando dentro del arreglo apra
realizar las comparaciones
For j As Integer = 0 To (Array.Length - 2)

'evaluamos si cumple la condicion que es mayor que el siguiente
elemento
If Array(j) > Array(j + 1) Then
aux = Array(j) ' Guardamos el valor para no perderlo
Hecho por Ismael Crdenas Materia: Software
Array(j) = Array(j + 1) ' Reasigana el valor mas pequeo al
elemento anterior es decir lo recorre a la izquierda
Array(j + 1) = aux ' El elemento mayor guardado en Auxiliar lo
acomoda de lado derecho

End If

Next j
Next i

'Imprime el nuevo arreglo con los datos ordenados de menos a mayor
For num3 As Integer = 0 To Array.Length - 1
ordenado.Items.Add(Array(num3))

Next

End Sub

' limpia los listbox
Private Sub Clear_list()
arreglo.Items.Clear()
ordenado.Items.Clear()

End Sub

End Class

WINDOWS FORM

Hecho por Ismael Crdenas Materia: Software
EXPLIACION DEL FUNCIONAMIENTO
Si tenemos 3 numeros A(0)= 10, A(1)= 2 Y A(2)= 50, el numero de elementos es 3, para
evaluar el numero de recorrimientos internos en el for de J es N-2 donde N es el numero de
elementos entonces recorreremos 1 posicion.
A=[16,2,50]
N=3
Iteraciones=3-2 = 1
ESTRUCUTRA DE LA EVALAUACION
'FOR para I en el cual nos permite definir el nmero de pasadas necesarias
For i= 0 hasta N -1 (Nmero de elementos -1)

'FOR para J el cual permite ir avanzando dentro del arreglo apra realizar las
comparaciones
For j= 0 Hasta N-2 (Numero de elementos 2, iteraciones necesarias)

'evaluamos si cumple la condicin que es mayor que el siguiente elemento

If Array(j) > Array(j + 1) Then
aux = Array(j) ' Guardamos el valor para no perderlo
Array(j) = Array(j + 1) ' Reasigana el valor mas pequeo al
elemento anterior es decir lo recorre a la izquierda
Array(j + 1) = aux ' El elemento mayor guardado en Auxiliar lo
acomoda de lado derecho

End If

Next j
Next i

ENTONCES SE EVALUARA EN LOS CICLOS FOR
FOR I=0 hasta N -1 (Es decir se evaluara desde 0 hasta 3-1=2 )
FOR J=0 hasta N-2( Es decir se evaluara desde 0 hasta 3-2=1 )
NOTA.- Por que en el segndo FOR para J (El cual es utilizado para recorrer los elementos del arreglo)
se le resta 2 al numero de elemento, es por que por ejemplo en un arreglo de 4 elementos
A=[1,2,7,6]
Se evaluaran siempre dos elementos comenzando de izquierda a derecha por lo tanto el numero de
recorrimientos posibles es la cantidad de elementos en este caso 4, menos los elementos que se
compararan los primeros dos por eso es que le restamos dos.


Hecho por Ismael Crdenas Materia: Software
IF (CONDICION)
RECORRE LOS VALORES (Solamente si se cumple la condicin)
ENDIF
NEXT
NEXT

EXPLICACION CON NUMEROS
CICLOS FOR VARIABLES VECTOR
I J AUX A(J) A(J+1) A(0) A(1) A(2)
0 0 0
16 2 16 2
50

Se evalaua si A(j) = 16 > A(j+1)= 2, donde J es igual a 0, como se cumple la condicion del
IF se procede a cambiar los valores recorriendo el mayor hacia la derecha.
AUX= A(J) =16; Guarda ese valor, para no perderlo al recorrer el menor a la posicion
de la izquierda
A(J)= A(J+1) =2 ; El valor menor que se encontraba a la derecha es colocado en la
posicin de la derecha. Esto cambia el valor que se encontraba antes de 16 a un valor 2.



A(J+1)= AUX; Al valor que se encontraba en A(J+1) que antes era 2 y se movi de lugar
ahora es un espacio vaco con valor 0 el cual es ocupado por el valor del nmero mayor en
este caso 16. Recordemos que J tiene un valor 0 por lo tanto A(j+1)=A(0+1) El cual indica
la posicin del elemento.
CICLOS FOR VARIABLES VECTOR
I J AUX A(J) A(J+1) A(0) A(1) A(2)
0 0
16 2 16 2 16
50


Si recordamos el nmero de iteraciones:
N=3 Numero de lelemetos
Iteraciones=3-2 = 1
Se observa que nomas necesitamos una iteracion es decir repetir el recorriemito del For para J una
sola VEZ.

Potrebbero piacerti anche