Un ejercicio utilizando arreglos y una posible resolución. ¿Se te ocurre alguna otra? Si es así, compartila en la sección de comentarios 😃.

Ejercicio C++

Click aquí para una versión accesible de la infografía (apta para lectores electrónicos)
 

Dado un arreglo conteniendo solo unos y ceros, y su dimensión, ordenar los elementos en tiempo lineal.

Ejemplo:

Entrada: { 1, 0, 1, 0, 1, 0, 0, 1 }

Salida: { 0, 0, 0, 0, 1, 1, 1, 1 }

void ordenar(int A[], int n) {
    int k = 0;
    for (int i = 0; i < n; i++) {
        if (A[i] == 0) {
            A[k++] = 0;
        }
    }
    for (int i = k; i < n; i++) {
        A[k++] = 1;
    }
}

💻 Para probar y ejecutar el código