Bubble Sort
Cada pasada mueve el mayor valor no ordenado hacia el final.
¿Qué es Bubble Sort?
Cada pasada mueve el mayor valor no ordenado hacia el final.
Ordena intercambiando inversiones adyacentes.
Puntos importantes
- Prueba entradas vacías, únicas, duplicadas y ordenadas.
- Separa corrección y optimización.
- Prefiere la biblioteca estándar en producción.
Visualizador de Bubble Sort
O(n²)Usa Reproducir o Paso para seguir cada comparación y movimiento de datos.
Ejemplos de código C y C++
main.c
#include <stdio.h>
int main(void) {
int values[] = {5, 1, 4, 2};
for (int end = 3; end > 0; --end) {
int changed = 0;
for (int index = 0; index < end; ++index) {
if (values[index] > values[index + 1]) {
int temporary = values[index];
values[index] = values[index + 1];
values[index + 1] = temporary;
changed = 1;
}
}
if (!changed) break;
}
for (int index = 0; index < 4; ++index) {
printf("%d ", values[index]);
}
}
1 2 4 5
C++
main.cpp
#include <iostream>
#include <vector>
int main() {
std::vector values{5, 1, 4, 2};
for (auto end = values.end(); end != values.begin(); --end) {
bool changed = false;
for (auto item = values.begin(); item + 1 != end; ++item) {
if (*item > *(item + 1)) {
std::iter_swap(item, item + 1);
changed = true;
}
}
if (!changed) break;
}
for (int value : values) {
std::cout << value << ' ';
}
}
1 2 4 5
Comparación entre C y C++
Es educativo pero O(n²); early exit logra O(n) si ya está ordenado y C++ de producción suele usar std::sort.
C
Bucles, punteros, tamaños y buffers se escriben explícitamente.
C++
Iteradores y algoritmos separan la operación del almacenamiento.
Ejercicios prácticos
Ejecuta ambas versiones y modifícalas para observar sus garantías.
- Traza cada comparación.
- Prueba duplicados y valores extremos.
- Compara con la biblioteca estándar.