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 - Primo Anno
 Laboratorio di informatica
 [GIOCHETTO] Trova il BUG nascosto!!
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Chloe
Utente giovane

Homer


Regione: Puglia
Prov.: Bari
Città: Andria


Inserito il - 24/04/2010 : 10:40:16  Mostra Profilo  Visita l'Homepage di Chloe  Clicca per vedere l'indirizzo MSN di Chloe Invia a Chloe un Messaggio Privato  Rispondi Quotando
Chi lo trova vince.... vince... la soddisfazione di esserci riuscito

public void sort() {
		quicksort(strings, 0, strings.length - 1);
	}
	
	/* partiziona l'array */
	private int partition(String[] array, int left, int right,
			                                     int pivotIndex) {
		String pivotValue = array[pivotIndex];
		swap(pivotIndex, right); // Pone pivot alla fine
		int storeIndex = left;
		for (int i = left; i < right; i++) {
			if (array[i].compareToIgnoreCase(pivotValue) < 0) {
				swap(i, storeIndex);
				storeIndex++;
			}
		}
		swap(storeIndex, right); // Pone pivot nella sua posizione finale
		return storeIndex; 
	}
	
	/* effettua l'ordinamento quicksort */
	private void quicksort(String[] array, int left, int right) {
		final int TWO = 2;
		if (right > left) {
			int pivotIndex = left + (right - left) / TWO;
			int pivotNewIndex = partition(array, left, right, pivotIndex);
			quicksort(array, left, pivotNewIndex - 1);
			quicksort(array, pivotNewIndex + 1, right);
		}
	}


Aggiungo anche il codice dello swap anche se non è necessario ai fini del gioco:

protected void swap(int i, int j) {
    	String strTemp = strings[i];
    	strings[i] = strings[j];
    	strings[j] = strTemp;
    	
    	int indTemp = invertedIndexes[i];
    	invertedIndexes[i] = invertedIndexes[j];
    	invertedIndexes[j] = indTemp;
    	
    	directIndexes[invertedIndexes[i]] = i;
    	directIndexes[invertedIndexes[j]] = j;
    }


Good Luck

Garet Jax
Utente medio


Regione: Puglia
Prov.: Foggia
Città: San Severo


Inserito il - 24/04/2010 : 12:23:39  Mostra Profilo  Visita l'Homepage di Garet Jax Invia a Garet Jax un Messaggio Privato  Rispondi Quotando
Come l'hai scritto tu funziona, tranne per un caso che però neanche il professore riesce a trovare. Se proprio vuoi migliorarlo togli il passaggio dell'array come parametro ed agisci direttamente su strings.
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  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,19 secondi.

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