Studiati questo codice, che usa lastSwappedLine sia come limite di riga da esaminare nel ciclo successivo, sia come condizione di uscita (se l'ultima riga scambiata è la riga zero vuol dire che non c'è più niente da scambiare).
codice:void BubbleSort(int Array[], size_t Length) { size_t lastSwappedLine; size_t limit=Length-1; do { swappedLine=0; for(size_t i=0;i<limit-1;i++) { if(Array[i]>Array[i+1]) { lastSwappedLine=i; Swap(Array+i, Array+i+1); } } limit=lastSwappedLine; } while(lastSwappedLine); }

Rispondi quotando