ORDENAMIENTO BURBUJA
La idea básica del ordenamiento de la burbuja es recorrer el conjunto de elementos en forma secuencial varias veces. Cada paso compara un elemento del conjunto con su sucesor (x[i] con x [i+i]), e intercambia los dos elementos si no están en el orden adecuado. El algoritmo utiliza una bandera que cambia cuando se realiza algún intercambio de valores, y permanece intacta cuando no se intercambia ningún valor, pudiendo así detener el ciclo y terminar el proceso de ordenamiento cuando no se realicen intercambios, lo que indica que este ya está ordenado. Este algoritmo es de fácil comprensión y programación pero es poco eficiente puesto que existen n-1 pasos y n-i comprobaciones en cada paso.
void ordenar(int arreglo[], int n)
{
{
int temporal, i = 0, j, cambio = 1;
while (i<n-1 && cambio == 1)
{
while (i<n-1 && cambio == 1)
{
cambio=0;
for (j=0; j<n-1, j++)
{ if (arreglo[j]>arreglo[j+1])
{ cambio=1;
temporal = arreglo[j];
arreglo[j] = arreglo[j+1];
arreglo[j+1] = temporal; } }
i++;
for (j=0; j<n-1, j++)
{ if (arreglo[j]>arreglo[j+1])
{ cambio=1;
temporal = arreglo[j];
arreglo[j] = arreglo[j+1];
arreglo[j+1] = temporal; } }
i++;
}
}
ORDENAMIENTO POR INSERCCION
La estrategia del ordenamiento por inserción consiste en crear un nuevo arreglo vacío e irle insertando en la posición correcta cada uno de los elementos del arreglo original, hasta tener el arreglo ordenado. La desventaja de este método radica en su normal implementación mediante vectores ya que cuando se desea insertar un nuevo elemento en el vector, es necesario desplazar todos los elementos que hay desde ese punto hasta el final del arreglo, para así crear un espacio para el nuevo elemento.
algoritmo
insertSort( A : lista de elementos ordenables )
para i=1 hasta longitud(A) hacer
index=A[i]
j=i-1
mientras j>=0 y A[j]>index hacer
A[j+1] = A[j]
j = j - 1
fin mientras
A[j+1] = index
fin para
fin algoritmo
Elegiste los dos peores algoritmos para presentar :D 3 puntos.
ResponderEliminar