




Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Ejercicios de Ordenamiento utilizando Python
Tipo: Ejercicios
1 / 8
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





Guia de Prog 1 - Teoría Sección 3. Ordenamiento - 14 de noviembre 2023
Programación 1 Teoría
Ejemplo 1: Ordena los elementos de una lista de menor a mayor utilizando el metodo de ordenamiento de la Bubble sort
from random import randint
def bubble_sort(lista): for tope in range(len(lista)-1,0,-1): for i in range(tope): if lista[i] > lista[i+1]: aux = lista[i+1] lista[i+1] = lista[i] lista[i] = aux
def main(): n = int(input("Numero de elementos : ")) lista = [ randint(1,50) for x in range(n)] print(lista) bubble_sort(lista) print(lista)
main()
Ejemplo 2:
Ahora ordenamos la lista pero de MAYOR A MENOR
from random import randint
def bubble_sort(lista): for tope in range(len(lista)-1,0,-1): for i in range(tope): if lista[i] < lista[i+1]: aux = lista[i+1] lista[i+1] = lista[i] lista[i] = aux
def main(): n = int(input("Numero de elementos : ")) lista = [ randint(1,50) for x in range(n)] print(lista) bubble_sort(lista) print(lista)
main()
Ejemplo 3: Ordena las palabras de una frase que se ingresa como dato. Para ordenar las palabras de la frase las coloca en una lista y ordena la lista de palabras
#----- Realice un programa que permita leer una frase e imprima las palabras #---- de la frase el orden alfabetico
def bubble_sort(lista): for tope in range(len(lista)-1, 0, -1): for i in range(tope): if lista[i] > lista[i+1] : temp = lista[i] lista[i] = lista[i+1] lista[i+1] = temp
def main(): frase = input("Frase: ") lista = frase.split() print(lista) bubble_sort(lista) print(lista)
main()
Merge sort
Merge sort ahora ordena de mayor a menor los datos de una lista de numeros
from random import randint
def merge(lista, left, right): i = j = k = 0 while i < len(left) and j < len(right): if left[i] > right[j]: lista[k] = left[i] i += 1 else: lista[k] = right[j] j += 1 k += 1
while i < len(left): lista[k] = left[i] i += 1 k += 1
while j < len(right): lista[k] = right[j] j += 1 k += 1
def merge_sort(lista): if len(lista) > 1 : mid = len(lista) // 2 left = lista[:mid] right = lista[mid:] merge_sort(left) merge_sort(right) merge(lista, left, right)
def main(): n = int(input("Numero de elementos : ")) lista = [ randint(1,50) for x in range(n)] print(lista) merge_sort(lista) print(lista)
main()
Ejemplo 4
Dado un archivo numeros.txt el cual contiene en cada fila un número entero, se solicita que elabore un programa que genere un archivo deletreando.txt el cual contiene los números de letrados del primero archivo.
#----numeros.txt
f_numeros = open("numeros.txt","r") resultado = [] for numero in f_numeros.readlines(): resultado.append(deletrear(numero)) f_numeros.close
print(resultado)
#----numeros.txt f_resultado = open("numeros.txt","w") for i in f_numeros.readlines(): f_resultado.write(i) f_resultado.close()
def deletrear(num): resultado = "" str = "" if num == "-": resultado = "NEGATIVO" for i in range(1,len(num)): str = += num_to_str(num[i]) else: resultado = "POSITIVO" for i in range(1,len(num)): str = += num_to_str(num[i])
resultado += str resultado += "\n"
def def_deletrear(num): resultado = ""
if num == "-": resultado = "NEGATIVO"
else: resultado = "POSITIVO"
resultado.append(divisores(numero)) f_numeros.close
print(resultado)
#----numeros.txt f_resultado = open("numeros.txt","w") for i in f_numeros.readlines(): f_resultado.write(i) f_resultado.close()
def divisores(num): resultado = []
num= int(num) for i in range(2, num//2 + 1): if num % 1 == 0: resultado.append(str(i))
r = " - ".join(resultado) r += "\n" return r
Ejemplo 6
Considere que se tiene un archivo de inventario de una empresa (codigo, nombre y cantidad) y un archivo de precios (codigo, precio y estado), se solicita que elabore un programa genere un archivo de texto reporte.txt donde se presenta la cantidad de bienes de la empresa según su estado (nuevo o usado).
def contar(producto,precio): producto = producto.split(",") precio = precio.split(",") print("producto: ", producto ) print("precio: ", precio )
a=[int(producto[2]), precio[2][0]] print(a) return a
def reportar(reporte): nuevos= 0 usados= 0
for i in reporte:
if i[1] == "n": nuevos += i[0] else: usados += i[0]
return [[nuevos,"nuevo"], [usados,"usado"]]
f_inventario = open("inventario.txt","r") f_precio = open("precios.txt","r")
f_inventario.readlines() f_precio.readlines()
reporte = [] precios = f_precio.readlines() for idx, producto in enumerate(f_inventario.readlines()): resultado.append(contar(producto, precios[idx]))
reporte = reportar(reporte) print(reporte)
f_reporte= open("reporte.txt","w") f_reporte.write("cantidad,estado\n")
for i in reporte: f_reporte.write(str(i[0] + "," + i[1] + "\n") f_reporte.close()