Programa Java para imprimir todas las rotaciones posibles de una array dada

Dada una array de enteros arr[] de tamaño N , la tarea es imprimir todas las rotaciones posibles de la array.
Ejemplos: 

Entrada: arr[] = {1, 2, 3, 4} 
Salida: {1, 2, 3, 4}, {4, 1, 2, 3}, {3, 4, 1, 2}, {2, 3, 4, 1} 
Explicación: 
Inicial arr[] = {1, 2, 3, 4} 
Después de la primera rotación arr[] = {4, 1, 2, 3} 
Después de la segunda rotación arr[] = {3, 4, 1, 2} 
Después de la tercera rotación arr[] = {2, 3, 4, 1} 
Después de la cuarta rotación, arr[] vuelve a su forma original.
Entrada: arr[] = [1] 
Salida: [1] 

Enfoque: 
siga los pasos a continuación para resolver el problema:  

  1. Genere todas las rotaciones posibles de la array, realizando una rotación a la izquierda de la array una por una.
  2. Imprima todas las rotaciones posibles de la array hasta que se encuentre la misma rotación de la array.

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

Java

// Java program to print
// all possible rotations
// of the given array
class GFG{
     
// Global declaration of array
static int arr[] = new int[10000];
 
// Function to reverse array
// between indices s and e
public static void reverse(int arr[],
                           int s, int e)
{
    while(s < e)
    {
        int tem = arr[s];
        arr[s] = arr[e];
        arr[e] = tem;
        s = s + 1;
        e = e - 1;
    }
}
 
// Function to generate all
// possible rotations of array
public static void fun(int arr[], int k)
{
    int n = 4 - 1;
    int v = n - k;
     
    if (v >= 0)
    {
        reverse(arr, 0, v);
        reverse(arr, v + 1, n);
        reverse(arr, 0, n);
    }
}
 
// Driver code
public static void main(String args[])
{
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    arr[3] = 4;
     
    for(int i = 0; i < 4; i++)
    {
        fun(arr, i);
         
        System.out.print("[");
        for(int j = 0; j < 4; j++)
        {
            System.out.print(arr[j] + ", ");
        }
        System.out.print("]");
    }
}
}
 
// This code is contributed by gk74533
Producción: 

[1, 2, 3, 4] [4, 1, 2, 3] [2, 3, 4, 1] [3, 4, 1, 2]

 

Complejidad Temporal: O (N 2 )  
Espacio Auxiliar: O (1)

Consulte el artículo completo sobre Imprimir todas las rotaciones posibles de una array determinada para obtener más detalles.
 

Publicación traducida automáticamente

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