Bubble sort

Vedi la discussione

Osserva il meccanismo

ss1_

Soluzione 1

Sono necessarie (?) n passate su n-1 coppie

def bubble_sort(lista):
    n=len(lista)
    for i in range(n):
        for j in range(n-1):
            if(lista[j] > lista[j+1]):
                temp      =lista[j]
                lista[j]  =lista[j+1]
                lista[j+1]=temp

LISTA=[20,15,10,3]
print(LISTA)
bubble_sort(LISTA)
print(LISTA)

Soluzione 2

Si può migliorare la soluzione precedente

  • sono sufficienti n-1 passate (n-1 bolle si sistemano… e l’ultimo numero sarà alla posizione 0…)
  • su n-1-i coppie (ogni passata ha una coppia in meno rispetto alla passata precedente)
def bubble_sort(lista):
    n=len(lista)
    for i in range(n-1):
        for j in range(n-1-i):
            if(lista[j] > lista[j+1]):
                temp      =lista[j]
                lista[j]  =lista[j+1]
                lista[j+1]=temp