Programa en C para ordenar filas de la Array

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:

  1. Atraviesa la array
  2. 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 .
  3. Si se encuentra que es cierto, intercambie el elemento actual y el elemento mínimo en la array .
  4. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *