Está en la página 1de 2

GRUPO 3 | ORDENAMIENTO POR INSERCIÓN PROGRAMACIÓN I

RESUMEN

El algoritmo de ordenamiento por inserción es un algoritmo de fácil aplicación que permite


el ordenamiento de una lista.

Su funcionamiento consiste en el recorrido por la lista seleccionando en cada iteración un


valor como clave y compararlo con el resto a su derecha, insertándolo en el lugar
correspondiente.

Código ordenamiento por inserción

def ordenamiento(datos):
if validación(datos):
if type(datos)==tuple:
datos=list(datos)

for i in range(1, len(datos)):


elemento=datos[i]
while i>0 and elemento<datos[i-1]:
datos[i]=datos[i-1]
i=i-1
datos[i]=elemento
return datos
else:
return False

En caso de que reciba una tupla, este la convierte a una lista para poder ordenarla.

Validación de la entrada

def validación(entrada):
if type(entrada)==list or type(entrada)==tuple:
Valida=True
for i in entrada:
if type(i)!=int and type(i)!=float:
if not validación(i):
Valida=False
break
if Valida:
return True
else:
return False
else:
return False

1
GRUPO 3 | ORDENAMIENTO POR INSERCIÓN PROGRAMACIÓN I

Recibirá listas, tuplas e inclusive listas de listas, tuplas de tuplas o ambas.

Entrada por teclado

datos=eval(input("Ingrese una lista/tupla a ordenar: "))

while not validación(datos):


datos=eval(input("Debe ser una lista/tupla de números.\nIngrese unla lista/tupla a
ordenar: "))

if type(datos)==tuple:
datos=list(datos)
datos1=[]
datos2=[]
for i in datos:
if type(i)==list or type(i)==tuple:
lista_ordenada=ordenamiento(i)
datos2+=[lista_ordenada]
else:
datos1+=[i]
datos1=ordenamiento(datos1)
datos1=datos1+datos2
print(datos1)

Se separan las listas o tuplas que vienen dentro de la lista original.

Ejemplos:

>>> [2,3,4,1] >>> ((1,0,4,2),(5,0.1,4))


[1,2,3,4] [[0,1,2,4],[0.1,4,5]]

>>> (0,1,5,2.5) >>> [[2,4,1],(4,0,9)]


[0,1,2.5,5] [[1,2,4],[0,4,9]]

>>> [[4,0,6,7],[0,5,1,3]] >>>[8,3,6,1,[4,5,1]]


[[0,4,6,7],[0,1,3,5]] [1,3,6,8,[1,4,5]]

Si se ingresa algo como:


>>> “Hola”
>>> 1234
>>> [[2,1,4], [“hola”,5,1]]
El programa pedirá que se vuelva a ingresar la entrada.

También podría gustarte