miércoles, 22 de octubre de 2008

Metodo de la burbuja

El Ordenamiento de Burbuja (Bubble Sort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando 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. Es necesario revisar varias veces toda la lista hasta que no se necesiten más 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 pequeñas "burbujas". También es conocido como el método del intercambio directo.


Visual Basic for Applications
Sub ORDENAR()
Dim X As Integer
Dim I As Integer
Dim y As Double
Dim j As Integer

X = 1
For I = 1 To 10
Cells(I, 1) = Rnd
Next I

For I = 1 To 9
For j = I + 1 To 10
If Cells(I, 1) < Cells(j, 1) Then
y = Cells(j, 1)
Cells(j, 1) = Cells(I, 1)
Cells(I, 1) = y
End If

Next j
Next I

End Sub


Visual Basic .NET
Module Burbuja

" Con Este algoritmo podras ordenar un conjunto de numeros que esten dentro de un vector de menor a mayor e imprimirlos al final "
( Es una aplicacion de consola como veran )

Sub Main()
Dim i, v(10), j, aux As Integer

'''Se dimencionan las variables i y j para los siclos repetitivos ( for)
y el vector v con que va a contener 10 posiciones V(10) y la variable aux que nos servira como auxiliar para el intercambio de valores '.''


For i = 1 To 10
Console.WriteLine(" Digite Un numero para la casilla " & i & " del vector :")
v(i) = Console.ReadLine

Next

For i = 1 To 10

For j = 1 To 10 - 1

If v(j) > v(j + 1) Then

aux = v(j)
v(j) = v(j + 1)
v(j + 1) = aux


End If
Next

Next

For i = 1 To 10
Console.WriteLine(v(i))
Console.ReadLine()


Next

End Sub

End Module

C
void bubble(int *start, int *end) //Ordena un conjunto de números enteros de menor a mayor
{
short fin;
do
{
fin=0;
for (int *i=start;i!=*end;i++)
{
if (*i>*(i+1))
{
intercambia(i, i+1);
fin=1;
}
}
}while (fin!=1);
}

C (Ejemplo 2)
void bubble(int A[], int tamano_arreglo) //Ordena un arreglo de números enteros de menor a mayor
{
int temp, j, i;
for(i = (tamano_arreglo-1); i >= 0; i--)
{
for(j = 1; j <= i; j++)
{
if(A[j-1] > A[j])
{
/* Intercambio de numeros*/
temp = A[j-1];
A[j-1] = A[j];
A[j] = temp;
}
}
}
}

1 comentario:

Lic. Rubí S.H. dijo...

Muy bien señorita pero recuerde que tenemos que probar los algoritmos oks. Saludos