Programa de Python 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: 

Python

# Python program to rearrange a given
# list such that it consists of alternating
# minimum maximum elements
inp = []
 
# Function to rearrange a given list such
# that it consists of alternating minimum
# maximum elements
def alternateSort():
 
    global inp
     
    # Sort the list in ascending order
    inp.sort()
 
    # Get index to first element of
    # the list
    it = 0
    it = it + 1
     
    i = 1
     
    while ( i < (len(inp) + 1)/2 ):   
        i = i + 1
         
        # pop last element (next greatest)
        val = inp[-1]
        inp.pop()
 
        # Insert it after next minimum
        # element
        inp.insert(it, val)
 
        # Increment the pointer for next
        # pair
        it = it + 2
     
# Driver code
# Input list
inp=[ 1, 3, 8, 2, 7, 5, 6, 4 ]
 
# Rearrange the given list
alternateSort()
 
# Print the modified list
print (inp)
 
# This code is contributed by Arnab Kundu

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(1), ya que no 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 *