[Java] Il paradigma degli array.

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
djblizart
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 282
Iscrizione: giovedì 4 gennaio 2007, 0:25
Contatti:

[Java] Il paradigma degli array.

Messaggio da djblizart »

Salve a tutti ho riscontrato molti problemi con gli array e sono giunto alla conclusione che non ho una infarinatura esatta che renda la mia mente flessibile alle richieste riguardanti gli array.
Ad esempio ora stò litigando (e non saprei come fare) con un array.
Avendo un array a devo spostare gli elementi di a in modo che gli elementi pari precedano quelli dispari, mantendo però l'ordine originale..
Mi piacerebbe ricevere non solo una risposta al mio dilemma ma anche dei link che spieghino bene gli array.
Grazie!!
o.O
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Java] Il paradigma degli array.

Messaggio da Zoff »

djblizart ha scritto: Salve a tutti ho riscontrato molti problemi con gli array e sono giunto alla conclusione che non ho una infarinatura esatta che renda la mia mente flessibile alle richieste riguardanti gli array.
Ad esempio ora stò litigando (e non saprei come fare) con un array.
Avendo un array a devo spostare gli elementi di a in modo che gli elementi pari precedano quelli dispari, mantendo però l'ordine originale..
Mi piacerebbe ricevere non solo una risposta al mio dilemma ma anche dei link che spieghino bene gli array.
Grazie!!
Se non ho capito male un array contenente questa sequenza di numeri:
1 2 3 4 5 6 7 8 9
Ordinato secondo quello che chiedi diventerebbe:
2 4 6 8 1 3 5 7 9

Giusto?

Intando dà un occhiata a wikipedia che può aiutarti un po': http://it.wikipedia.org/wiki/Array_in_Java
Ultima modifica di Zoff il venerdì 5 settembre 2008, 13:19, modificato 1 volta in totale.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
djblizart
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 282
Iscrizione: giovedì 4 gennaio 2007, 0:25
Contatti:

Re: [Java] Il paradigma degli array.

Messaggio da djblizart »

Sì giustissimo..
o.O
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Java] Il paradigma degli array.

Messaggio da Zoff »

djblizart ha scritto: Sì giustissimo..
Ok, allora eccoti una soluzione volutamente "sbagliata" cioè assai poco performante e assai sprecona di memoria :D
Vedi tu se partendo da questa riesci ad arrivare ad una soluzione convincente...

Codice: Seleziona tutto

public class Sorter {
	public static void main(String[] args) {
		int[] vett = {1,2,3,4,5,6,7,8,9};
		int[] pari = new int[vett.length];
		int[] dispari = new int[vett.length];
		int pi=0, di=0;
				
		for(int i=0;i<vett.length;i++){
			if(vett[i]%2==0){
				pari[pi++] = vett[i];
			}else{
				dispari[di++] = vett[i];
			}
		}
		for(int i=0;i<di;i++){
			pari[pi+i]= dispari[i];
		}
		vett = pari;
	}
}
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
djblizart
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 282
Iscrizione: giovedì 4 gennaio 2007, 0:25
Contatti:

Re: [Java] Il paradigma degli array.

Messaggio da djblizart »

Scusa la mia ignoranza ma non basterebbe fare solamente (visto che l'array a è un dato passato):
public class paridispari ( int[] a) {
    for(int i=0;i<vett.length;i++){
if(a%2==0){
pari[pi++] = vett;
}else{
dispari[di++] = vett;
}


O.o?
Solo che mi sembra troppo semplice come soluzione LoL
Inoltre la chiamata di Foo.paridispari(a); dovrebbe ritornare l'array ordinato..
o.O
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Java] Il paradigma degli array.

Messaggio da Zoff »

djblizart ha scritto: Scusa la mia ignoranza ma non basterebbe fare solamente (visto che l'array a è un dato passato):

Codice: Seleziona tutto

public class paridispari ( int[] a) {
    for(int i=0;i<vett.length;i++){
	if(a[i]%2==0){
		pari[pi++] = vett[i];
	}else{
		dispari[di++] = vett[i];
}

O.o?
Solo che mi sembra troppo semplice come soluzione LoL
Inoltre la chiamata di Foo.paridispari(a); dovrebbe ritornare l'array ordinato..
Ipotizzando di sostituire "a" a "vett" nel tuo codice, rimane comunque il problema che a quel punto hai un array di pari ed uno di dispari, mentre quello che avevo capito che volevi era un array con all'inizio i pari e alla fine i dispari... e per fare ciò serve la seconda parte del mio codice...

PS: Essendo array facendo pari = vett; alla fine, aggiorni il puntatore per cui il chiamante avrà l'array già ordinato nella locazione di memoria puntata dal vettore passato come parametro...
Ultima modifica di Zoff il venerdì 5 settembre 2008, 13:44, modificato 1 volta in totale.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti