Dada una array arr[][] de dimensiones N * M , la tarea es ordenar la array de modo que cada fila esté ordenada y el primer elemento de cada fila sea mayor o igual que el último elemento de la fila anterior.
Ejemplos:
Entrada: N = 3, M = 3, arr[][] = {{7, 8, 9}, {5, 6, 4}, {3, 1, 2}}
Salida:
1 2 3
4 5 6
7 8 9
Enfoque: siga los pasos a continuación para resolver el problema:
- Atraviesa la array
- Para cada elemento de la array, considérelo como el elemento mínimo en la array . Compruebe si hay un elemento más pequeño presente en el resto de la array .
- Si se encuentra que es cierto, intercambie el elemento actual y el elemento mínimo en la array .
- Finalmente, imprima la array ordenada .
A continuación se muestra la implementación del enfoque anterior:
C
// C program for the above approach #include <stdio.h> #include <stdlib.h> #define SIZE 100 // Function to sort a matrix void sort_matrix(int arr[SIZE][SIZE], int N, int M) { // Traverse over the matrix for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { // Current minimum element int minimum = arr[i][j]; // Index of the current // minimum element int z = i; int q = j; // Check if any smaller element // is present in the matrix int w = j; for (int k = i; k < N; k++) { for (; w < M; w++) { // Update the minimum element if (arr[k][w] < minimum) { minimum = arr[k][w]; // Update the index of // the minimum element z = k; q = w; } } w = 0; } // Swap the current element // and the minimum element int temp = arr[i][j]; arr[i][j] = arr[z][q]; arr[z][q] = temp; } } } // Function to print the sorted matrix void printMat(int arr[SIZE][SIZE], int N, int M) { for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { printf("%d ", arr[i][j]); } printf("\n"); } } // Driver Code int main() { int N = 3, M = 3; int arr[SIZE][SIZE] = { { 7, 8, 9 }, { 5, 6, 4 }, { 3, 1, 2 } }; // Sort the matrix sort_matrix(arr, N, M); // Print the sorted matrix printMat(arr, N, M); return 0; }
Producción:
1 2 3 4 5 6 7 8 9
Complejidad de Tiempo: O(N 4 )
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por narayandwivedi21 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA