Burbuja
El método de la Burbuja no es más que un sencillo algoritmo de ordenamiento. Funciona chequeando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Este procedimiento también es conocido como el método del intercambio directo.
Una manera simple de expresar el ordenamiento de burbuja en pseudocódigo es la siguiente:
Este algoritmo realiza el ordenamiento o re-ordenamiento de una lista a de n valores, en este caso de n términos numerados del 0 al n-1; consta de dos bucles anidados, uno con el índice i, que da un tamaño 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 interacción del primer bucle, que indica el lugar de la burbuja.
La burbuja son dos términos de la lista seguidos, j y j+1, en el cual se comparan si el primero es mayor que el segundo sus valores se intercambian.
Esta comparación se repite en el centro de los dos bucles, dando lugar a la postre a una lista ordenada. Puede verse que el número de repeticiones solo depende de n y no del orden de los términos, esto es, si pasamos al algoritmo una lista ya ordenada, realizará todas las comparaciones exactamente igual que para una lista no ordenada.
Para comprender el funcionamiento, veamos un ejemplo sencillo:
Declaramos el vector con un rango de 10 elementos y luego cargamos el vector con sus respectivos valores.
***Program Burbuja.prg
Clear
Declare vector[10]
For u=10 To 1
vector[u]=u
Next
vector[1]=6
vector[2]=4
vector[3]=7
vector[4]=5
vector[5]=8
vector[6]=9
vector[7]=2
vector[8]=3
vector[9]=1
vector[10]=0
imax=10
iMin=1
Pos=0
Do 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
Endif
Next i
imax = Pos
Enddo
For p=1 To 10
? vector[p]
Next
Este ejemplo lo desarrollé para demostrar de que si se puede ejecutar otra forma de ordenamiento que no sea únicamente mediante un sort o través de la creación de índices.
Acá ya tienen otra forma de realizar un ordenamiento. Uds pueden modificar el tamaño del vector dependiendo de la cantidad de registro que puedan tener, esto es simplemente un abre boca para lo que se puede hace en visual foxpro.
Y recuerda "Haz bien sin ver a quién".
Acá ya tienen otra forma de realizar un ordenamiento. Uds pueden modificar el tamaño del vector dependiendo de la cantidad de registro que puedan tener, esto es simplemente un abre boca para lo que se puede hace en visual foxpro.
Y recuerda "Haz bien sin ver a quién".
Esto también se podría usar para ordenar una tabla?
ResponderEliminar