Algoritmos en C/C++

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++

C
Ejecutar →
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]);
    }
}
Resultado esperado
1 2 4 5
C++
Ejecutar →
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 << ' ';
    }
}
Resultado esperado
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.