Programa Javascript 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: 

Javascript

<script>
  
// javascript program to print
// all possible rotations
// of the given array
  
// Global declaration of array
arr = Array.from({length: 10000}, (_, i) => 0);
  
// Function to reverse array 
// between indices s and e
function reverse(arr, s , e)
{
    while(s < e)
    {
        var tem = arr[s];
        arr[s] = arr[e];
        arr[e] = tem;
        s = s + 1;
        e = e - 1;
    }
}
  
// Function to generate all
// possible rotations of array
function fun(arr , k)
{
    var n = 4 - 1;
    var v = n - k;
      
    if (v >= 0)
    {
        reverse(arr, 0, v);
        reverse(arr, v + 1, n);
        reverse(arr, 0, n);
    }
}
  
// Driver code
  
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    arr[3] = 4;
      
    for(i = 0; i < 4; i++)
    {
        fun(arr, i);
          
        document.write("[");
        for(j = 0; j < 4; j++)
        {
            document.write(arr[j] + ", ");
        }
        document.write("]<br>");
    }
  
  
// This code is contributed by 29AjayKumar 
</script>
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 *