Algoritmo De Burbuja
Generalizando el proceso de ordenación se obtine el siguiente pseudocódigo estructurado para el algoritmo de burbuja.
i - Variable ordenaciones
j - Variable comparaciones
n -Número de elementos del vector (en C representa el índice mayor)
algoritmo Burbuja
inicio
// Ordenaciones
desde i ← 1 hasta n-1 hacer
// Comparaciones
desde j ← 1 hasta n-i hacer
si elemento[j] >elemento[j+1] entonces
// Intercambiar los elementos
aux ← V[j]
V[j] ← V[j+1]
V[j+1] ← aux
fin_si
fin_desde
fin_desde
fin
Ejemplo en C:
int v[]={3, 34, 1, 53, 15, 6};
int j,i, aux;// Ordenación
for(i=0; i<5; i++){
// Comparaciones
for(j=0; j<5-i; j++){
// Intercambiar los elementos
if(v[j] > v[j+1]){
aux=v[j];
v[j]=v[j+1];
v[j+1]=aux;
}
}
}
Método de ordenación deburbuja mejorado.
Si nos fijamos en la tabla de ordenaciones observamos que el vector ha quedado ordenado en la tercera ordenación, siendo innecesario realizar la cuarta y la quinta ordenación, sinembargo el algoritmo de burbuja analizado realiza todas las comparaciones de las ordenaciones hasta (n-1). Se puede detectar que el vector se encuentra ordenado e interrumpir las ordenaciones, de estaforma mejoramos el rendimiento del algoritmo. Cuando se realiza una ordenación si en todas las comparaciones no se ha realizado un intercambio de elementos es debido a que el vector se encuentraordenado. Se puede utilizar un indicador, bandera o variable booleana para detectar el fin de la ordenación.
El siguiente algoritmo muestra una de las versiones optimizada del método de ordenación porburbuja.
i - Variable ordenaciones
j - Variable comparaciones
n - Número de elementos del vector (en C representa el índice mayor)
ord - Variable indicadora de vector ordenado
algoritmo Burbuja2
inicio
//Ordenaciones
i ← 1 // Iniciar ordenaciones
ord ← 0 // Iniciar indicador de vector ordenado
mientras ord = 0 hacer
ord ← 1
// Comparaciones
desde j ← 1 hasta n-i hacer
si elemento[j] >...
Regístrate para leer el documento completo.