Programa Python para ordenar la matriz 2D en columnas
Cuando se declara una matriz bidimensional o una matriz 2D, se trata como una matriz. Entonces sabemos que una matriz consta de filas y columnas. El proceso de ordenar los elementos que pertenecen a una columna particular de una matriz, ya sea en orden ascendente o descendente, se conoce como ordenar una matriz 2D entre columnas. Consideremos un algoritmo seguido de un escenario de entrada y salida para comprender la aplicación exacta de este concepto.
Escenario de entrada y salida
Considere una matriz bidimensional.
arr = [[ 7, 9, 5, 7 ], [9, 5, 9, 4], [2, 7, 8, 6], [ 8, 6, 6, 5]]
La representación matricial de la matriz bidimensional anterior es la siguiente:
7 9 5 7
9 5 9 4
2 7 8 6
8 6 6 5
Ahora, clasifiquemos la matriz dada en columnas en orden descendente.
La primera columna consta de los elementos 7, 9, 2 y 8. El orden descendente de los elementos 7, 9, 2 y 8 es 9, 8, 7 y 2.
-
La segunda columna consta de los elementos 9, 5, 7 y 6. El orden descendente de los elementos 9, 5, 7 y 6 es 9, 7, 6 y 5.
De manera similar, también se ordenan las columnas tercera y cuarta.
La matriz ordenada en las columnas en orden descendente es
9 9 5 7
8 7 9 6
7 6 8 5
2 5 6 4
La representación matricial de la matriz ordenada es
[[9, 9, 9, 7 ], [7, 7, 8, 6], [8, 6, 6, 5], [ 2, 5, 5, 4 ]]
Esta es la matriz ordenada resultante.
Ejemplo
En este ejemplo, vamos a analizar cómo ordenar la matriz bidimensional en columnas. Los pasos que se deben seguir para construir el programa deseado son los siguientes
Paso 1: declarar una matriz bidimensional
Paso 2: recorra todos los elementos en columnas para ordenarlos en consecuencia.
Paso 3 : compare los elementos de la misma columna de modo que si un elemento es más pequeño que el otro, siga la condición.
Paso 4: intercambie los elementos si no se cumple la condición.
-
Paso 5 - Continúe el mismo proceso hasta que todos los elementos dentro de las columnas estén cubiertos y finalmente imprima la matriz que está ordenada.
def sort_the_array_column_wise(arr):
for j in range (size):
for i in range(size - 1):
if arr[i][j] < arr[i + 1][j]:
temp = arr[i][j]
arr[i][j] = arr[i + 1][j]
arr[i + 1][j] = temp
for i in range(size):
for j in range(size):
print(arr[i][j], end=" ")
print()
arr = [[7, 9, 5, 7 ], [9, 5, 9, 4], [2, 7, 8, 6], [ 8, 6, 6, 5 ]]
size = len(arr)
print("The array before performing sorting operation is: ")
for i in range(size):
for j in range(size):
print(arr[i][j], end=" ")
print()
print("The array after performing sorting operation is: ")
sort_the_array_column_wise(arr)
Producción
El resultado del programa anterior es el siguiente:
The array before performing sorting operation is:
7 9 5 7
9 5 9 4
2 7 8 6
8 6 6 5
The array after performing sorting operation is:
9 9 9 7
7 7 8 6
8 6 6 5
2 5 5 4
Conclusión
Podemos ver claramente que el resultado realmente coincide con el resultado esperado en el ejemplo anterior. De la misma manera, la clasificación de una matriz 2D en filas se puede realizar cambiando algunas declaraciones en el programa anterior. Así es como funciona el concepto de ordenar matrices 2D entre columnas.