bubble sort c with examples
Técnica de clasificación de burbujas en C ++.
Bubble Sort es la más simple de las técnicas de clasificación.
En la técnica de clasificación de burbujas, cada uno de los elementos de la lista se compara con su elemento adyacente. Así, si hay n elementos en la lista A, entonces A [0] se compara con A [1], A [1] se compara con A [2] y así sucesivamente.
Después de comparar si el primer elemento es mayor que el segundo, se intercambian los dos elementos.
=> Visite aquí para conocer el curso completo de C ++ de expertos.
Lo que vas a aprender:
- Técnica de clasificación de burbujas
- Ilustración
- Ejemplo de C ++
- Ejemplo de Java
- Análisis de complejidad del algoritmo de clasificación de burbujas
- Conclusión
- Lectura recomendada
Técnica de clasificación de burbujas
Usando la técnica de clasificación de burbujas, la clasificación se realiza en pasadas o iteraciones. Por tanto, al final de cada iteración, el elemento más pesado se coloca en el lugar que le corresponde en la lista. En otras palabras, aparece el elemento más grande de la lista.
A continuación, proporcionamos un algoritmo general de la técnica de clasificación de burbujas.
diferencia entre pruebas funcionales y no funcionales
Algoritmo general
Paso 1 : Para i = 0 a N-1, repita el Paso 2
Paso 2 : Para J = i + 1 a N - repito
Paso 3 : si A [J]> A [i]
Intercambiar A [J] y A [i]
[Fin del bucle for Inner]
[Fin si exterior para bucle]
Paso 4 : Salida
Aquí hay un pseudocódigo para el algoritmo de clasificación de burbujas, donde recorremos la lista usando dos bucles iterativos.
En el primer bucle, partimos del 0thelemento y en el siguiente ciclo, comenzamos desde un elemento adyacente. En el cuerpo del bucle interno, comparamos cada uno de los elementos adyacentes y los intercambiamos si no están en orden. Al final de cada iteración del ciclo externo, el elemento más pesado burbujea al final.
Pseudocódigo
|_+_|Lo anterior es el pseudocódigo para la técnica de clasificación de burbujas. Ilustremos ahora esta técnica utilizando una ilustración detallada.
Ilustración
Tomamos una matriz de tamaño 5 e ilustramos el algoritmo de clasificación de burbujas.
Matriz completamente ordenada.
La ilustración anterior se puede resumir en forma de tabla como se muestra a continuación:
Pasar | Lista sin clasificar | comparación | Lista ordenada |
---|---|---|---|
{5,0,10,12,15} | {10,12} | {5,0,10,12,15} | |
1 | {10,5,15,0,12} | {10,5} | {5,10,15,0,12} |
{5,10,15,0,12} | {10,15} | {5,10,15,0,12} | |
{5,10,15,0,12} | {15,0} | {5,10,0,15,12} | |
{5,10,0,15,12} | {15,12} | {5,10,0,12,15} | |
2 | {5,10,0,12,15} | {5,10} | {5,10,0,12,15} |
{5,10,0,12,15} | {10,0} | {5,0,10,12,15} | |
3 | {5,0,10,12,15} | {5,0} | {0,5,10,12,15} |
{5,0,10,12,15} | {5,10} | {5,0,10,12,15} | |
{5,0,10,12,15} | CLASIFICADO |
Como se muestra en la ilustración, con cada pasada, el elemento más grande burbujea hasta el último ordenando así la lista con cada pasada. Como se mencionó en la introducción, cada elemento se compara con su elemento adyacente y se intercambian entre sí si no están en orden.
Por lo tanto, como se muestra en la ilustración anterior, al final de la primera pasada, si la matriz se va a ordenar en orden ascendente, el elemento más grande se coloca al final de la lista. Para la segunda pasada, el segundo elemento más grande se coloca en la penúltima posición de la lista y así sucesivamente.
Cuando lleguemos a N-1 (donde N es un número total de elementos en la lista) pasa, tendremos toda la lista ordenada.
La técnica de clasificación de burbujas se puede implementar en cualquier lenguaje de programación. Hemos implementado el algoritmo de clasificación de burbujas usando C ++ y lenguaje Java a continuación.
implementación de la tabla hash de c ++
Ejemplo de C ++
Veamos un ejemplo de programación para demostrar la clasificación de burbujas.
|_+_|Producción:
Lista de entrada ...
10 2 0 14 43 25 18 1 5 45
Lista de elementos ordenados ...
0 1 2 5 10 14 18 25 43 45
Número de pases realizados para ordenar la lista: 10
Ejemplo de Java
|_+_|Producción:
En ambos programas, hemos utilizado una matriz de 10 elementos y la clasificamos utilizando la técnica de clasificación de burbujas. En ambos programas, hemos utilizado dos bucles for para recorrer los elementos adyacentes de la matriz.
¿Qué es la activación de puertos y el reenvío de puertos
Al final de cada pasada (bucle exterior), el elemento más grande de la matriz se burbujea hasta el final de la matriz. También contamos el número de pasadas que se requieren para ordenar toda la matriz.
Análisis de complejidad del algoritmo de clasificación de burbujas
A partir del pseudocódigo y la ilustración que hemos visto arriba, en orden de burbuja, hacemos comparaciones N-1 en la primera pasada, comparaciones N-2 en la segunda pasada y así sucesivamente.
Por lo tanto, el número total de comparaciones en la clasificación de burbujas es:
Yo = (n-1) + (n-2) + (n-3) + ... + 3 + 2 + 1
= N (N-1) / 2
= O (n2) => Complejidad temporal de la técnica de clasificación de burbujas
Por lo tanto, a continuación se detallan las diversas complejidades de la técnica de clasificación de burbujas:
Complejidad en el peor de los casos | En 2 ) |
Mejor complejidad en el tiempo del caso | En) |
Complejidad de tiempo promedio | En 2 ) |
Complejidad espacial | O(1) |
La técnica de clasificación de burbujas requiere solo un espacio de memoria adicional para la variable temporal para facilitar el intercambio. Por tanto, la complejidad del espacio para el algoritmo de clasificación de burbujas es O (1).
Tenga en cuenta que la complejidad del tiempo en el mejor de los casos para la técnica de clasificación de burbujas será cuando la lista ya esté ordenada y será O (n).
Conclusión
La principal ventaja de Bubble Sort es la simplicidad del algoritmo. En la clasificación de burbujas, con cada pasada, el elemento más grande aparece hasta el final de la lista si la matriz se ordena en orden ascendente.
De manera similar, para que la lista se clasifique en orden descendente, el elemento más pequeño estará en su lugar adecuado al final de cada pasada.
Al ser la técnica de clasificación más simple y fácil de implementar, la clasificación de burbujas se utiliza generalmente para presentar la clasificación a la audiencia. En segundo lugar, la clasificación de burbujas también se utiliza en aplicaciones como los gráficos por computadora en los que el relleno de los bordes del polígono, etc. requiere la clasificación de burbujas para clasificar los vértices que recubren el polígono.
En nuestro próximo tutorial, aprenderemos sobre el ordenamiento por selección en detalle.
=> Visite aquí para aprender C ++ desde cero.
Lectura recomendada
- Orden de Shell en C ++ con ejemplos
- Orden de selección en C ++ con ejemplos
- Método MongoDB Sort () con ejemplos
- Comando de ordenación de Unix con sintaxis, opciones y ejemplos
- Orden de inserción en C ++ con ejemplos
- Combinar ordenación en C ++ con ejemplos
- Ordenar montón en C ++ con ejemplos
- Clasificación rápida en C ++ con ejemplos