Programa Java para rotar todos los números impares a la derecha y todos los números pares a la izquierda en una array de 1 a N

Dadas las arrays de permutación A[] que consisten en N números en el rango [1, N] , la tarea es girar a la izquierda todos los números pares y girar a la derecha todos los números impares de la permutación e imprimir la permutación actualizada. 
Nota: N siempre es par.
Ejemplos: 

Entrada: A = {1, 2, 3, 4, 5, 6, 7, 8} 
Salida: {7, 4, 1, 6, 3, 8, 5, 2} 
Explicación: 
Elemento par = {2, 4, 6, 8} 
Elemento impar = {1, 3, 5, 7} 
Rotación a la izquierda de un número par = {4, 6, 8, 2} 
Rotación a la derecha de un número impar = {7, 1, 3, 5} 
Combinación de números impares y número par alternativamente.
Entrada: A = {1, 2, 3, 4, 5, 6} 
Salida: {5, 4, 1, 6, 3, 2} 
 

Acercarse:

  1. Está claro que los elementos impares siempre están en el índice par y los elementos pares siempre están en el índice impar.
  2. Para hacer la rotación a la izquierda de un número par, elegimos solo índices impares.
  3. Para hacer la rotación correcta de un número impar, elegimos solo índices pares.
  4. Imprime la array actualizada.

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

Java

// Java program to implement
// the above approach
  
import java.io.*;
import java.util.*;
import java.lang.*;
  
class GFG {
  
    // function to left rotate
    static void left_rotate(int[] arr)
    {
        int last = arr[1];
        for (int i = 3;
            i < arr.length;
            i = i + 2) {
            arr[i - 2] = arr[i];
        }
        arr[arr.length - 1] = last;
    }
  
    // function to right rotate
    static void right_rotate(int[] arr)
    {
        int start = arr[arr.length - 2];
        for (int i = arr.length - 4;
            i >= 0;
            i = i - 2) {
            arr[i + 2] = arr[i];
        }
        arr[0] = start;
    }
  
    // Function to rotate the array
    public static void rotate(int arr[])
    {
        left_rotate(arr);
        right_rotate(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
  
    // Driver code
    public static void main(String[] args)
    {
        int arr[] = { 1, 2, 3, 4, 5, 6 };
  
        rotate(arr);
    }
}
Producción:

5 4 1 6 3 2

Complejidad temporal: O(N) 
Espacio auxiliar: O(1)
 

Consulte el artículo completo sobre Rotar todos los números impares a la derecha y todos los números pares a la izquierda en una array de 1 a N 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 *