QuickSort con pivot Random C++ [RISOLTO]

di il
1 risposte

QuickSort con pivot Random C++ [RISOLTO]

Salve a tutti!
Sono 2 giorni che mi picchio con il Quicksort con scelta del pivot randomico...compila,ma non fa ciò che deve, tendendo a scambiare il pivot con l'ultimo elemento o simile.Vi lascio il codice.

/**************************************************************************************
				QUICKSORT RANDOMIZZATO
***************************************************************************************/
int partitionr(vector <int>&u ,int first,int last){
	int p=(rand() % u.size()+1);	
	int pivot=u[p];
	
	int i=p+1;
		for(int j=first; j<last; j++){
			if(i<last){
			
			if(u[j]<pivot){
				
			 	scambia(u,  i,  j);
				i=i+1;
				}
			}
			}
	scambia(u,  first,  i);
	return (i);
}



void quickSortRandom(vector<int>& v)
{
   if(v.size()==1)
	return;
	int p;
	//=(rand() % v.size()+1);
	p=partitionr(v , 0 , v.size()-1);
	qs(v , 0 , p);
	qs(v , p+1, v.size()-1);
}

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte