Quicksort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 365:
if( fin<=in )return;
int pos=partiziona( v,in,fin );
/*
*Ricorsione...(Quindi algoritmo non in-place , in quanto deve
*allocare memoria fino alla risoluzione del problema)
*/
QuickSort( v,in,pos-1 );
QuickSort( v,pos+1,fin );
Riga 370 ⟶ 374:
public int partiziona( int[]v , int in , int fin ){
// L'elemento
int i=in+1,j=fin;
while( i<=j ){
Riga 376 ⟶ 380:
while( v[j]>v[in] ) j--;
if( i<=j ){
// Scambia
int t=v[i];
v[i]=v[j];
Riga 381 ⟶ 386:
}
}
// Scambia
int tt=v[in];
v[in]=v[i-1];
v[i-1]=tt;
return i-1;
}
</source>
}}
|