Programa Java para intercambiar dos columnas en la array

Dada una array de m filas y n columnas. Tenemos que escribir un programa Java para intercambiar dos columnas (es decir, la columna sin K y L dada en la entrada) en la array dada. Se requiere la operación de intercambio para intercambiar los elementos de dos columnas. La operación O(1) para intercambiar dos columnas es imposible porque se requiere un recorrido completo entre dos columnas.

Ejemplos

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

Acercarse

  • Si K y L, es decir, el número de columna que tenemos que intercambiar son iguales, imprima la array tal como está.
  • Else Bucle sobre las columnas Kth y Lth de la array.
  • Intercambie los elementos de ith el índice de ambas columnas mientras realiza el recorrido.
  • Ahora, después de que termine el ciclo, imprima la array.

A continuación se muestra la implementación del código para el enfoque anterior:

Java

// Java program to interchange
// two Column in a Matrix
import java.io.*;
class GFG {
 
    public static void printMatrix(int[][] matrix)
    {
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[0].length; j++)
                System.out.print(matrix[i][j] + " ");
            System.out.println();
        }
    }
    public static void exchangeAnyTwoColumns(int[][] matrix,
                                             int K, int L)
    {
        for (int i = 0; i < matrix.length; i++) {
 
            // Swap two numbers
            int temp = matrix[i][K - 1];
            matrix[i][K - 1] = matrix[i][L - 1];
            matrix[i][L - 1] = temp;
        }
 
        // Print matrix
        printMatrix(matrix);
    }
 
    public static void main(String[] args)
    {
        int K = 1, L = 2;
        int mat[][]
            = { { 2, 1, 4 }, { 1, 2, 3 }, { 3, 6, 2 } };
 
        // calling the exchange Column function
        exchangeAnyTwoColumns(mat, K, L);
    }
}
Producción

1 2 4 
2 1 3 
6 3 2 

Complejidad de Tiempo: 0(n), Donde n es la longitud de la Columna.

Complejidad espacial: 0(1)

Publicación traducida automáticamente

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