Mariz en c ordenadora de filas según código ASCII

Hol disculpa tengo la siguiente duda, tengo un programa que ordena los elementos de una matriz de mayor a menor se sun el código aSCII pero no puedo comprender como lo hace
aquí abajo va descrito la operación que efectúa el programa
/* El siguiente lazo permite copiar el arreglo "a" en el arreglo "b". */
for(i=0; i<FILA;i++)
{
for(j=0;j<COLUMNA;j++)
{
b[j]=a[j];
}
}
/* El siguiente lazo permite ordenar los elementos de la matriz "b" por filas
de menor a mayor, mediante la comparaci¢n de cada uno de sus elementos. */
for(k=0;k<FILA;k++)
{
for(i=0; i<COLUMNA-1;i++)
{
for(j=i+1;j<COLUMNA;j++)
{
if (b[k] > b[k][j])
{
temp = b[k];
b[k] = b[k][j];
b[k][j] = temp;
}
else
{
}
}
}
}
Gracias de antemano
Apolo

1 respuesta

Respuesta
1
Pues bien, te explico. Lo que hace este algoritmo es bien como tu dices la ordenación de las filas de una matriz. El bucle más externo, es para todas las filas las va ordenando. Para ello, utiliza dos bucles más que lo que hacen es ir intercambiando dos elementos poniendo el mayor a la izquierda. Es lo que se conoce como el método de ordenación de la burbuja. Digamos que escoge un pivote, (empezando por el elemento más a la izq) compara ese pivote con el resto de elementos de la fila, si alguno es mayor lo intercambia. Así, el pivote quedara como el elemento mayor. Luego, avanza un indice y establece un nuevo pivote. Ahora realiza la misma operación, quedando como segundo elemento el mayor elemento de los que quedaban de la fila (recordando, que el primero ya era el mayor...)
Pues bien, esta manera de proceder, el elemento mayor va 'subiendo' hacia las posiciones de los números mayores se reconoce como una burbuja.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas