Programa Python para insertar un elemento en una lista ordenada

Dada una lista ordenada y un elemento, escriba un programa Python para insertar el elemento en la lista dada en la posición ordenada.

Ejemplos:

Input : list = [1, 2, 4], n = 3
Output : list = [1, 2, 3, 4]

Input : list = ['a', 'b', 'c', 'd'], n = 'e'
Output : list = ['a', 'b', 'c', 'd', 'e']

Enfoque #1:
Este enfoque es el método de fuerza bruta. Dado que la lista ya está ordenada, comenzamos con un bucle y verificamos si el elemento de la lista es mayor que el elemento dado. En caso afirmativo, el elemento dado debe insertarse en esta posición.

# Python3 program to insert
# an element into sorted list
  
# Function to insert element
  
  
def insert(list, n):
  
    index = len(list)
    # Searching for the position
    for i in range(len(list)):
      if list[i] > n:
        index = i
        break
  
    # Inserting n in the list
    if index == len(list):
      list = list[:index] + [n]
    else:
      list = list[:index] + [n] + list[index:]
    return list
  
# Driver function
list = [1, 2, 4]
n = 3
  
print(insert(list, n))
Producción:

[1, 2, 3, 4]

 
Enfoque #2:
Python viene con un módulo de bisección cuyo propósito es encontrar una posición en la lista donde se debe insertar un elemento para mantener la lista ordenada. Por lo tanto, usamos este módulo para resolver el problema dado.

# Python3 program to insert 
# an element into sorted list
import bisect 
  
def insert(list, n):
    bisect.insort(list, n) 
    return list
  
# Driver function
list = [1, 2, 4]
n = 3
  
print(insert(list, n))
Producción:

[1, 2, 3, 4]

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal 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 *