si.. leggendo le specifiche che aveva dato VendeR avevo ignorato il primo elemento della lista

ma vedo che è già chiaro questo.
@VendeR:
il codice fa questo:
1) scorre tutta la lista e tutte le volte che l'elemento selezionato è maggiore del successivo lo scambia
2) se ci sono stati degli scambi nel precedente passo lo ripete
3) se non ci sono stati scambi durante lo scorrimento della lista significa che la lista è ordinata
esempio:
metti che ho la seguente lista: 8, 3, 10, 13, 5, 1
prendo in considerazione il primo elemento (8) che è maggiore del successivo (3) e quindi li scambio ottenendo: 3, 8, 10, 13, 5, 1
ora passo al secondo elemento e non lo scambio (8<10), e il terzo neppure.
il quarto invece lo devo scambiare e ottengo: 3, 8, 10, 5, 13, 1
il quinto pure: 3, 8, 10, 5, 1, 13
ci sono stati degli scambi in questa passata della lista, quindi è necessaria un'altra passata.. per brevità scrivo il risultato finale della seconda passata: 3, 8, 5, 1, 10, 13
ci sono stati ancora degli scambi quindi ripeto l'operazione e ottengo: 3, 5, 1, 8, 10, 13
e ancora (siamo alla quarta passata): 3, 1, 5, 8, 10, 13
c'è stato ancora uno scambio quindi: 1, 3, 5, 8, 10, 13
ora se ripeto ancora non devo fare nessuno scambio, quindi mi accorgo che la lista è ordinata e esco dal while
ps. l'esempio è volutamente sfigato, il bubble sort in alcuni casi si comporta abbastanza bene.
pps. adesso hai capito il perchè di bubble sort? il numeri vanno a galla come le bollicine