Ordenar un arreglo de dos dimensiones aplicando el ordenamiento burbuja

Iniciado por UmbraNoche, 25 Octubre 2015, 03:31 AM

0 Miembros y 1 Visitante están viendo este tema.

UmbraNoche

Buenas gente aquí les dejo un código de una de las muchas formas de cómo aplicar el ordenamiento burbuja a un arreglo de dos dimensiones.

Código (cpp) [Seleccionar]
    #include <iostream>
    #include <cstdlib>
    #include <ctime>
     
    using namespace std;
     
    void rellenarArreglos(int a[10][10]);
    void desplegarArreglo(int a[10][10]);
    void ordenarArreglo(int a[10][10]);
     
    int main(){
     
        int arreglo1[10][10];
     
        cout << "Arreglo1\n\n";
        rellenarArreglos(arreglo1);
        ordenarArreglo(arreglo1);
        desplegarArreglo(arreglo1);
     
     
        system("pause");
        return 0;
    }
     
    void rellenarArreglos(int a[10][10]){
     
        srand(time(0));
     
        for(int i = 0; i < 10; i++){
            for(int j = 0; j < 10; j++)
                a[i][j] = (1 + rand() % 1000);
        }
     
    }
     
    void desplegarArreglo(int a[10][10]){
     
        for(int c = 0; c < 10; c++){
            for(int b = 0; b < 10; b++)
                cout << c[a][b] << "\t";
                cout << endl;
        }
     
    }
     
    void ordenarArreglo(int a[10][10]){
     
        int k = 0;
        int arreglo[100];
     
        //Convertir el arreglo de dos dimensiones en uno de una sola dimension.
        for(int fila = 0; fila < 10; fila++){
            for(int col = 0; col < 10; col++){
                arreglo[k] = a[fila][col];
                k++;
            }
        }
     
     
        //Aplicación del Ordenamiento Burbuja.
        for(int f = 1; f < 100; f++){
            for(int c = 0; c < 100; c++){
                if(arreglo[c] > arreglo[c+1]){
                    int temp = arreglo[c];
                    arreglo[c] = arreglo[c+1];
                    arreglo[c+1] = temp;
     
                }
            }
        }
     
        k = 0;
     
        //Convertir el arreglo de una dimensión en una de dos dimensiones
        //como anteriormente estaba.
        for(int f = 0; f < 10; f++){
            for(int c = 0; c < 10; c++){
                a[f][c] = arreglo[k];
                k++;
            }
        }
     
    }
     
"Si tienes un sueño entonces aferrate a el con constancia, sacrificio y dedicación".