Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 ITPS - Secondo Anno
 Algoritmi e Strutture Dati + Lab.
 quick sort attività 3 di laboratorio
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

snoopy88
Nuovo Utente



Inserito il - 28/02/2012 : 09:47:14  Mostra Profilo  Visita l'Homepage di snoopy88 Invia a snoopy88 un Messaggio Privato  Rispondi Quotando
Ciao a tutti ragazzi devo implementare l'algoritmo di quick sort dell'attività 3 di laboratorio avendo come base di partenza il metodo partition già implementato e il metodo quicksort da completare. Ho implementato il metodo quicksort ma Il problema è che non ho capito come passare a partition il parametro numConfronti xkè nel metodo quicksort è dichiarato come un semplice int mentre nel metodo partition è dichiarato come un array !
private static  int partition(int A[], int inf, int sup, int []numConfronti){
		int i,j;
		numConfronti[0]=0;
		i=inf; 
		j=sup; 
		int	med=(inf+sup)/2;
		int x=A[med];
		int temp=A[inf];
		A[inf]=A[med];
		A[med]=temp;
		while (true) 
		{
			numConfronti[0]++;
			while(i<=sup && A[i]<=x){ i++; 
				numConfronti[0]++;
			}
			numConfronti[0]++;
			while(A[j]>x) {j--;
				numConfronti[0]++;
			}
			
			if(i<j) { 
				temp=A[i];
				A[i]=A[j];
				A[j]=temp;
			}
			else break;
		}
		temp=A[inf];
		A[inf]=A[j];
		A[j]=temp;
		return j;

	}
	
	
	/*
	 * Algoritmo quicksort per l'ordinamento di un array di interi A
	 * usando come relazione d'ordine totale "<="
	 * @param A
	 */
	static int quicksort(int A[], int inf, int sup){
		int numConfronti=0;
		
		//To be implemented as exercise
		
		return numConfronti;
	}
	

	/**
	 * @param args
	 */



QUESTO è IL METODO QUICKSORT CHE STAVO IMPLEMENTANDO.

static int quicksort(int A[], int inf, int sup){
		int numConfronti;
		if(sup-inf>=1){
			int pos=partition(A,inf,sup,[b]????);
			if((pos-inf) < pos-pos+1){
				quicksort(A,inf,pos-1);
				quicksort(A,pos+1,sup);
			
			}
			else{
				quicksort(A,pos+1,sup);
				quicksort(A,inf,pos-1);
			}
				
		}
		
		
		return numConfronti;
	}

fmarzella
Nuovo Utente



Inserito il - 28/02/2012 : 11:32:13  Mostra Profilo  Visita l'Homepage di fmarzella Invia a fmarzella un Messaggio Privato  Rispondi Quotando
// Algoritmo QuickSort
static int quickSort(int A[], int inf, int sup){
int numConfronti=0, pos=0;
int numConfronti2[] = new int[1];
if(sup-inf>=1){
pos=partition(A,inf,sup,numConfronti2);
if((pos-inf)<(sup-(pos+1))){
numConfronti+=quickSort(A,inf,pos-1);
numConfronti+=quickSort(A,pos+1,sup);
}
else
{
numConfronti+=quickSort(A,pos+1,sup);
numConfronti+=quickSort(A,inf,pos-1);
}
}
numConfronti+=numConfronti2[0];
return numConfronti;
}
Torna all'inizio della Pagina

snoopy88
Nuovo Utente



Inserito il - 28/02/2012 : 11:46:35  Mostra Profilo  Visita l'Homepage di snoopy88 Invia a snoopy88 un Messaggio Privato  Rispondi Quotando
grazie fmarzella Puoi spiegarmi la seconda riga ??
Torna all'inizio della Pagina

fmarzella
Nuovo Utente



Inserito il - 28/02/2012 : 11:56:04  Mostra Profilo  Visita l'Homepage di fmarzella Invia a fmarzella un Messaggio Privato  Rispondi Quotando
Questo? "int numConfronti2[] = new int[1];"
Non ricordo con precisione, l'ho fatto un bel po' di tempo fa, ma è una soluzione per il passaggio di parametri per indirizzo se non sbaglio.
Torna all'inizio della Pagina

snoopy88
Nuovo Utente



Inserito il - 28/02/2012 : 12:00:58  Mostra Profilo  Visita l'Homepage di snoopy88 Invia a snoopy88 un Messaggio Privato  Rispondi Quotando
No questa : int numConfronti=0, pos=0;
Torna all'inizio della Pagina

fmarzella
Nuovo Utente



Inserito il - 28/02/2012 : 12:06:14  Mostra Profilo  Visita l'Homepage di fmarzella Invia a fmarzella un Messaggio Privato  Rispondi Quotando
Ho inizializzato a 0 due variabili di tipo int: numConfronti e pos.
Torna all'inizio della Pagina

snoopy88
Nuovo Utente



Inserito il - 28/02/2012 : 12:21:19  Mostra Profilo  Visita l'Homepage di snoopy88 Invia a snoopy88 un Messaggio Privato  Rispondi Quotando
si questo l'ho capito ma come fai a passare al metodo partition numConfronti che in quicksort è dichiarata come una int semplice mentre partition prende numConfroni[] che è un array di interi
Torna all'inizio della Pagina

fmarzella
Nuovo Utente



Inserito il - 28/02/2012 : 12:29:01  Mostra Profilo  Visita l'Homepage di fmarzella Invia a fmarzella un Messaggio Privato  Rispondi Quotando
A partition passo numConfronti2 che è un array di int.
"pos=partition(A,inf,sup,numConfronti2);"
Torna all'inizio della Pagina

snoopy88
Nuovo Utente



Inserito il - 28/02/2012 : 12:30:27  Mostra Profilo  Visita l'Homepage di snoopy88 Invia a snoopy88 un Messaggio Privato  Rispondi Quotando
scusami ho letto male io! =) grazie mille!
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Nuovo Sondaggio Nuovo Sondaggio
 Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,23 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000