Programa Java para reorganizar una lista dada de modo que consista en elementos mínimos máximos alternos

Dada una lista de números enteros, reorganice la lista de modo que consista en alternar elementos mínimos y máximos usando solo operaciones de lista . El primer elemento de la lista debe ser el mínimo y el segundo elemento debe ser el máximo de todos los elementos presentes en la lista. De manera similar, el tercer elemento será el siguiente elemento mínimo y el cuarto elemento será el siguiente elemento máximo, y así sucesivamente. No se permite el uso de espacio adicional. Ejemplos:

Input:  [1 3 8 2 7 5 6 4]
Output: [1 8 2 7 3 6 4 5]

Input:  [1 2 3 4 5 6 7]
Output: [1 7 2 6 3 5 4]

Input:  [1 6 2 5 3 4]
Output: [1 6 2 5 3 4]

La idea es ordenar la lista en orden ascendente primero. Luego comenzamos a sacar elementos del final de la lista y los insertamos en su posición correcta en la lista. A continuación se muestra la implementación de la idea anterior: 

Java

// Java program to rearrange a given list
// such that it consists of alternating
// minimum maximum elements
import java.util.*;
 
class AlternateSort
{
    // Function to rearrange a given list
    // such that it consists of alternating
    // minimum maximum elements using LinkedList
    public static void alternateSort(LinkedList<Integer> ll)
    {
        Collections.sort(ll);
         
        for (int i = 1;
                 i < (ll.size() + 1)/2; i++)
        {
            Integer x = ll.getLast();
            ll.removeLast();
            ll.add(2*i - 1, x);
        }
         
        System.out.println(ll);
    }
     
    public static void main (String[] args) throws java.lang.Exception
    {
        // Input list
        Integer arr[] = {1, 3, 8, 2, 7, 5, 6, 4};
         
        // Convert array to LinkedList
        LinkedList<Integer> ll =
              new LinkedList<Integer>(Arrays.asList(arr));
         
        // Rearrange the given list
        alternateSort(ll);
    }
}

Producción:

1 8 2 7 3 6 4 5

Complejidad de tiempo: O(N*logN), ya que estamos usando una función de clasificación.

Espacio Auxiliar: O(N), ya que estamos usando espacio extra.

¡ Consulte el artículo completo sobre Reorganizar una lista dada de modo que consista en elementos mínimos máximos alternos 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 *