// ORDENA UNA MATRIZ UTILIZANDO EL ALGORITMO DE BURBUJA
#define DIM 3
// ATENCION, si el puntero no tiene valor darA "SEGMENTATION FAULT"
// Ordena los datos de una matriz utilizando el mEtodo de burbuja
main()
{
int A[DIM][DIM];
PideDatos(A);
printf("Matriz no ordenada...\n"); Muestra(A);
Ordena(A);
printf("Matriz ordenada...\n"); Muestra(A);
}
Ordena(int A[][DIM])
{
int r, r1, c, c1, c_c;
for (r = 0; r < DIM; r++)
for (c = 0; c < DIM; c++)
{
c_c = c;
for (r1 = r; r1 < DIM; r1++)
{
for (c1 = c_c; c1 < DIM; c1++)
if (A[r][c] > A[r1][c1]) swap(&A[r][c], &A[r1][c1]);
c_c = 0;
}
}
}
swap(int *x, int *y)
{
int z = *y;
*y = *x;
*x = z;
}
Muestra(int A[][DIM])
{
int r, c;
for (r = 0; r < DIM; r++)
{
printf("\n");
for (c = 0; c < DIM; c++)
printf("\t%d", A[r][c]);
}
printf("\n");
}
PideDatos(int A[][DIM])
{
int r, c;
for (r = 0; r < DIM; r++)
for (c = 0; c < DIM; c++)
{ printf("A[%d][%d]= ", r, c); scanf("%d", &A[r][c]); }
}