PYTHON Ordenamiento tipo burbuja mejorado [65]

Después de cada pasada (el bucle for más externo), el elemento de más valor se ubica en el extremo del arreglo. Lo que significa que toma su posición correcta, por este motivo sería conveniente que en vez de realizar todas las comparaciones en la segunda pasada, se haga una comparación menos. Para esto usamos una variable comparaciones la cual cada vez que se complete un ciclo for externo (una pasada), se decrementa en 1 mediante la instruccion comparaciones–.

Codigo: https://github.com/programadornovato/curso-python/commit/e0abfb41bd65fa9bdd2f6fb3d3069fc0bd143116

def pedirDatos():
    lista=[]
    while True:
        n=int(input("Humano ingres el numero que quieras (0 para terminar):"))
        if n==0:
            return lista
        else:
            lista.append(n)
    return lista

def burbuja(lista):
    cont=0
    ordenado=False
    tamano=len(lista)
    comparaciones=tamano
    for _ in range(0,tamano):
        if ordenado==True:
            break
        for j in range(0,comparaciones-1):
            ordenado=True
            cont=cont+1
            if lista[j]>lista[j+1]:
                ordenado=False
                aux=lista[j]
                lista[j]=lista[j+1]
                lista[j+1]=aux
        comparaciones=comparaciones-1
    return lista,cont
def mostrarLista(lista,cont):
    tam=len(lista)
    print(f"Humano aqui esta tu piche lista ordenada en {cont} ciclos de forma acendente:")
    for i in range(0,tam):
        print(f"{lista[i]}")
    print(f"Humano aqui esta tu piche lista ordenada en {cont} ciclos de forma desendente:")
    for i in range(tam,0,-1):
        print(f"{lista[i-1]}")

lista=pedirDatos()
lista,cont=burbuja(lista)
mostrarLista(lista,cont)

🎦[CURSO] PYTHON PARA PRINCIPIANTES🐍: https://www.youtube.com/playlist?list=PLCTD_CpMeEKRppvi86Dy8CPYZ8-XzN2qu

🎦[CURSO] PYTHON PARA PRINCIPIANTES🐍: https://www.youtube.com/playlist?list=PLCTD_CpMeEKRppvi86Dy8CPYZ8-XzN2qu

🔗 Gracias por apoyar este canal: https://www.patreon.com/programadornovato
🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial
🔗 Twitter: https://twitter.com/programadornova
🔗 Linkedin: https://www.linkedin.com/in/programadornovato/
🔗 Instagram: https://www.instagram.com/programadornovato/
🔗 Pagina oficial: https://www.programadornovato.com

Eugenio Chaparro

Entradas recientes

Ejercicio.- Adivinar un numero random en kotlin (Curso de Kotlin desde cero [34])

Ejercicio.- Adivinar un numero random en kotlin (Curso de Kotlin desde cero [34])

En este tutorial vamos a hacer un programa que: Generamos un número aleatorio entre 1…

5 meses hace

Probar nuestra app web desde nuestra maquina local con ngrok en ubuntu 16.04 ☁️

Alguna vez has querido mostrar tu aplicación web en un dominio/subdominio o compartir un archivo,esto…

3 años hace

Mi primer app de shopify ?

RequerimientosRubyRubyGemsBundlerDescarga la aplicación de ejemplo1.- Ya que debemos correr la aplicación en una url con…

3 años hace

Instalar un entorno gráfico (xfce) en un servidor ubuntu 16.04 ?

En ocasiones tenemos la necesidad de tener un entorno grafico en un servidor por diferentes…

3 años hace

Certbot error certificer “Client with the currently selected authenticator does not support any combination…”

Ultimamnte me di cuenta que al intentar certificar mis dominios certbot envia este error:Client with…

3 años hace
hackear wifi con kali linux ?

hackear wifi con kali linux ?

Hoy en día tenemos la fortuna de tener muchas redes a nuestro alrededor, no necesariamente…

3 años hace