¿Cuál es el número total de comparaciones en un tipo de burbuja?

El número total de comparaciones en la clasificación de burbujas es ( n – 1) + ( n – 2) + (n-3) + (n-4) + (n-5) …… .. (2) + (1) = n ( n – 1) / 2 es decir, n2.

Explicación:

El algoritmo de clasificación de burbujas requiere un par de bucles anidados. El bucle externo debe iterar una vez para cada elemento para los elementos dados, es decir, n veces. mientras que el bucle interno itera n veces para la primera iteración, n-1 veces para la segunda iteración, n-2 veces para la tercera iteración y este proceso continúa.

Para la primera iteración del bucle externo, cuando intentamos colocar el elemento más grande en su posición correcta, se realizan n – 1 comparaciones, es decir, la primera comparación se realiza entre el primer y el segundo elemento, la segunda comparación se realiza entre segundo y tercer elementos, y así sucesivamente hasta que se haga la (n-1) th comparación entre el (n-1) th y el enésimo elemento.

Para la segunda iteración del bucle externo, no es necesario compararlo con el último elemento de la lista, ya que se colocó en la posición correcta en el pase anterior. Por lo tanto, la segunda iteración requiere solo n-2 comparaciones.

Del mismo modo, la tercera iteración requiere comparaciones (n-3). y así…

Entonces, el número total de comparaciones es ( n – 1) + ( n – 2) + (n-3) + (n-4) + (n-5) …… .. (2) + (1) = n ( n – 1) / 2 es decir, n2

Se llama clasificación de burbujas, porque con cada iteración el elemento más grande de la lista se eleva hacia el último lugar, al igual que una burbuja de agua sube a la superficie del agua. La clasificación se lleva a cabo recorriendo todos los elementos de datos uno por uno en pares y comparando elementos de datos adyacentes e intercambiando cada par que está fuera de servicio.

En Bubble Sort, las comparaciones n-1 se realizarán en el primer pase, n-2 en el segundo pase, n-3 en el tercer pase y así sucesivamente. Entonces el número total de comparaciones será

[matemáticas] (n-1) + (n-2) + (n-3) +… .. + 3 + 2 + 1 [/ matemáticas]

[matemáticas] Suma = n (n-1) / 2 [/ matemáticas]

Depende del orden inicial del elemento. En el mejor de los casos, las comparaciones [matemáticas] n-1 [/ matemáticas] son ​​suficientes para concluir que la matriz está ordenada. En el peor de los casos, cada elemento grande cruzará toda la matriz, para un total de [math] n-2 [/ math] pasadas de longitud decreciente, por lo tanto, [math] (n-1) n / 2 [/ math] comparaciones .

Depende de cómo estén organizados los datos.

Para los ítems [matemática] n [/ matemática], esto le dará una cantidad de comparaciones entre [matemática] n-1 [/ matemática] (ya ordenada) y [matemática] \ dfrac {n (n-1)} {2 } [/ math] (inversamente ordenado).

El número total es n * (n + 1) / 2.

Como hay n comparaciones para n elementos en el algoritmo de ordenamiento de burbujas, habrá aproximadamente n ^ 2 comparaciones.

More Interesting

¿Cómo un programa de razonamiento poco preciso asigna 8 gb de memoria en 3 segundos?

¿Cuál es la lógica detrás de los números de una tarjeta de regalo?

¿Qué es un algoritmo numérico simpléctico?

¿Cuál es el algoritmo de coincidencia utilizado por las declaraciones de consulta SQL del servidor SQL como "Me gusta 'A%'", "Me gusta '% A'" o "Me gusta '% A%'"?

¿Cuál es un buen enfoque para resolver este problema Problema - 118D - Codeforces?

Me acabo de unir a TopCoder porque quiero aprender las estructuras de datos y cómo codificarlas en C, pero no tengo idea de dónde comenzar en TopCoder ya que puedo ver 3 categorías en el sitio, pero no pude encontrar la forma correcta. ¿Qué debo hacer para comenzar?

¿Qué modelos matemáticos se utilizan en la clasificación IR?

¿Cuál es el mejor libro para ayudar a entender la programación práctica orientada a objetos?

¿Cuál es la solución a este décimo problema polinómico de clase?

¿Debería centrarme en el aprendizaje de algoritmos y estructuras de datos en profundidad, o aprender una habilidad como desarrollo web o desarrollo móvil usando Nanodegree?

¿Por qué un árbol de segmentos necesita una matriz de tamaño 4n? ¿Por qué no 2n-1?

Cómo resolver el problema M_SEQ en SPOJ

¿Por qué es imposible tener un tipo de comparación mejor que el tiempo O (nlogn)?

¿Cuánta teoría de probabilidad necesitas para entender y aplicar algoritmos comerciales populares?

¿Es cierto que si me vuelvo competente en estructuras de datos y algoritmos, puedo aprender cualquier lenguaje de programación y habilidades técnicas muy rápido?