Ordenar la array dada

Dada una array xn. El problema es ordenar la array dada en orden estricto. Aquí orden estricto significa que la array se ordena de tal manera que todos los elementos de una fila se ordenan en orden creciente y para la fila ‘i’, donde 1 <= i <= n-1, el primer elemento de la fila ‘i’ es mayor o igual que el último elemento de la fila ‘i-1’.
Ejemplos: 

Input : mat[][] = { {5, 4, 7},
                    {1, 3, 8},
                    {2, 9, 6} }
Output : 1 2 3
         4 5 6
         7 8 9

Enfoque: cree una array temporal [] de tamaño n ^ 2. Comenzando con la primera fila, uno por uno copie los elementos de la array dada en temp[]. Ordenar temp[]. Ahora, uno por uno, copie los elementos de temp[] de vuelta a la array dada.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ implementation to sort the given matrix
#include <bits/stdc++.h>
using namespace std;
 
#define SIZE 10
 
// function to sort the given matrix
void sortMat(int mat[SIZE][SIZE], int n)
{
    // temporary matrix of size n^2
    int temp[n * n];
    int k = 0;
 
    // copy the elements of matrix one by one
    // into temp[]
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            temp[k++] = mat[i][j];
 
    // sort temp[]
    sort(temp, temp + k);
     
    // copy the elements of temp[] one by one
    // in mat[][]
    k = 0;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            mat[i][j] = temp[k++];
}
 
// function to print the given matrix
void printMat(int mat[SIZE][SIZE], int n)
{
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++)
            cout << mat[i][j] << " ";
        cout << endl;
    }
}
 
// Driver program to test above
int main()
{
    int mat[SIZE][SIZE] = { { 5, 4, 7 },
                            { 1, 3, 8 },
                            { 2, 9, 6 } };
    int n = 3;
 
    cout << "Original Matrix:\n";
    printMat(mat, n);
 
    sortMat(mat, n);
 
    cout << "\nMatrix After Sorting:\n";
    printMat(mat, n);
 
    return 0;
}

Java

// Java implementation to
// sort the given matrix
import java.io.*;
import java.util.*;
 
class GFG {
     
    static int SIZE = 10;
 
    // function to sort the given matrix
    static void sortMat(int mat[][], int n)
    {
        // temporary matrix of size n^2
        int temp[] = new int[n * n];
        int k = 0;
     
        // copy the elements of matrix
        // one by one into temp[]
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                temp[k++] = mat[i][j];
     
        // sort temp[]
        Arrays.sort(temp);
         
        // copy the elements of temp[]
        // one by one in mat[][]
        k = 0;
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                mat[i][j] = temp[k++];
    }
     
    // function to print the given matrix
    static void printMat(int mat[][], int n)
    {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++)
                System.out.print( mat[i][j] + " ");
            System.out.println();
        }
    }
     
    // Driver program to test above
    public static void main(String args[])
    {
        int mat[][] = { { 5, 4, 7 },
                        { 1, 3, 8 },
                        { 2, 9, 6 } };
        int n = 3;
     
        System.out.println("Original Matrix:");
        printMat(mat, n);
     
        sortMat(mat, n);
     
        System.out.println("Matrix After Sorting:");
        printMat(mat, n);
     
    }
}
 
// This code is contributed by Nikita Tiwari.

Python3

# Python3 implementation to sort
# the given matrix
 
SIZE = 10
 
# Function to sort the given matrix
def sortMat(mat, n) :
     
    # Temporary matrix of size n^2
    temp = [0] * (n * n)
    k = 0
 
    # Copy the elements of matrix 
    # one by one into temp[]
    for i in range(0, n) :
         
        for j in range(0, n) :
             
            temp[k] = mat[i][j]
            k += 1
 
    # sort temp[]
    temp.sort()
     
    # copy the elements of temp[]
    # one by one in mat[][]
    k = 0
     
    for i in range(0, n) :
         
        for j in range(0, n) :
            mat[i][j] = temp[k]
            k += 1
 
 
# Function to print the given matrix
def printMat(mat, n) :
     
    for i in range(0, n) :
         
        for j in range( 0, n ) :
             
            print(mat[i][j] , end = " ")
             
        print()
     
     
# Driver program to test above
mat = [ [ 5, 4, 7 ],
        [ 1, 3, 8 ],
        [ 2, 9, 6 ] ]
n = 3
 
print( "Original Matrix:")
printMat(mat, n)
 
sortMat(mat, n)
 
print("\nMatrix After Sorting:")
printMat(mat, n)
 
 
# This code is contributed by Nikita Tiwari.

C#

// C# implementation to
// sort the given matrix
using System;
 
class GFG {
    static int SIZE = 10;
 
    // function to sort the given matrix
    static void sortMat(int[, ] mat, int n)
    {
        // temporary matrix of size n^2
        int[] temp = new int[n * n];
        int k = 0;
 
        // copy the elements of matrix
        // one by one into temp[]
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                temp[k++] = mat[i, j];
 
        // sort temp[]
        Array.Sort(temp);
 
        // copy the elements of temp[]
        // one by one in mat[][]
        k = 0;
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
            mat[i, j] = temp[k++];
    }
 
    // function to print the given matrix
    static void printMat(int[, ] mat, int n)
    {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++)
            Console.Write(mat[i, j] + " ");
            Console.WriteLine();
        }
    }
 
    // Driver code
    public static void Main()
    {
        int[, ] mat = { { 5, 4, 7 },
                        { 1, 3, 8 },
                        { 2, 9, 6 } };
        int n = 3;
 
        Console.WriteLine("Original Matrix:");
        printMat(mat, n);
 
        sortMat(mat, n);
 
        Console.WriteLine("Matrix After Sorting:");
        printMat(mat, n);
    }
}
 
// This code is contributed by Sam007

Javascript

<script>
 
// JavaScript implementation to sort
// the given matrix
 
let SIZE  = 10
 
// function to sort the given matrix
function sortMat(mat, n)
{
    // temporary matrix of size n^2
    let temp = new Array(n * n);
    let k = 0;
 
    // copy the elements of matrix one by one
    // into temp[]
    for (let i = 0; i < n; i++)
        for (let j = 0; j < n; j++)
            temp[k++] = mat[i][j];
 
    // sort temp[]
    temp.sort();
     
    // copy the elements of temp[] one by one
    // in mat[][]
    k = 0;
    for (let i = 0; i < n; i++)
        for (let j = 0; j < n; j++)
            mat[i][j] = temp[k++];
}
 
// function to print the given matrix
function printMat(mat, n)
{
    for (let i = 0; i < n; i++) {
        for (let j = 0; j < n; j++)
            document.write( mat[i][j] + " ");
        document.write( "<br>");
    }
}
 
// Driver program to test above
 
    let mat = [ [ 5, 4, 7 ],
                 [ 1, 3, 8 ],
                [ 2, 9, 6 ] ];
    let n = 3;
 
    document.write( "Original Matrix: " + "<br>");
    printMat(mat, n);
 
    sortMat(mat, n);
    document.write( "<br>");
    document.write( "\nMatrix After Sorting: " + "<br>");
    printMat(mat, n);
 
// This code is contributed by Manoj
 
</script>
Producción

Original Matrix:
5 4 7 
1 3 8 
2 9 6 

Matrix After Sorting:
1 2 3 
4 5 6 
7 8 9 

Complejidad temporal: O(n 2 log 2 n). 
Espacio Auxiliar: O(n 2 ), ya que se ha tomado n * n espacio extra.
 

Publicación traducida automáticamente

Artículo escrito por ayushjauhari14 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 *