Salve a tutti,
Ho una domanda da farvi prima che ci sbatta un po la testa:
dopo aver inserito dei dati string in un array, è possibile mettrli in ordine alfabetico?
avete già affrontato qeusto problema?
grazie
Salve a tutti,
Ho una domanda da farvi prima che ci sbatta un po la testa:
dopo aver inserito dei dati string in un array, è possibile mettrli in ordine alfabetico?
avete già affrontato qeusto problema?
grazie
Forse questa classe ti può essere utile: java.util.Arrays.
Ciao.codice:String [] mioVettore = ... Arrays.sort( mioVettore ); for (int i=0; i<mioVettore.length; i++) System.out.println( mioVettore[i] );![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Arrays.sort(array, 0, array.length);
con array di String o oggetti che implementano Comparable funziona alla grande
Grazie, lo proverò subito.
Ma, una curiosità:
logicamente per ordinare un array utilizzando cicli for e istruzione if o altro come fareste? come partireste?
l'ordinamento è un argomento decisamente vasto in informatica.Originariamente inviato da jspippo
Grazie, lo proverò subito.
Ma, una curiosità:
logicamente per ordinare un array utilizzando cicli for e istruzione if o altro come fareste? come partireste?
Ci sono gli algoritmi ricorsivi e iterativi, tra questi quelli che hanno una complessità maggiore e minore, quelli che usano più o meno memoria e spazio aggiuntivo.
Uno dei più semplici potrebbe essere questo(in Java):
che è chiamato appunto Insertion Sort.codice:public static void Insertion_sort(int[] A) { int k,j; for(int i=1;i<A.length;i++) { k=A[i]; j=i-1; while((j>=0)&&(A[j]>k)) { A[j+1]=A[j]; j--; } A[j+1]=k; } }
Ha una complessità abbastanza alta su array grandi, ma decisamente buona su array di piccole dimensioni
Se ne vuoi altri fammi sapere.
Grazie, io invece stavo pensando di utilizzare 2 array, uno con i dati, l'altro per inserire i dati in un'altro ordine.
Mi faresti qualche altro esempio?
Si portrebbe utilizzare una mappa, non so se chiama cosi, l'ho letta da qualche parte ma non ho approfondito, ha a che fare con l'hashcode o qualcosa di simile...
Usando 2 array non hai un ordinamento molto ottimizzato comunque ti scrivo un algoritmo che ha complessità ottima(per complessità intendo le operazioni che vengono eseguite dal programma):Originariamente inviato da jspippo
Grazie, io invece stavo pensando di utilizzare 2 array, uno con i dati, l'altro per inserire i dati in un'altro ordine.
Mi faresti qualche altro esempio?
Si portrebbe utilizzare una mappa, non so se chiama cosi, l'ho letta da qualche parte ma non ho approfondito, ha a che fare con l'hashcode o qualcosa di simile...
Non so se è quello che ti interessa(fa le stesse cose di quello di prima ma utilizza due array A e B).codice:class Merge { static int[] B; public static void Merge_Sort_Init(int[] A,int p,int r) { B=new int[A.length]; Merge_Sort(A,p,r); } public static void Merge_Sort(int[] A,int p,int r) { if(p<r) { int q=(int)((p+r)/2); Merge_Sort(A,p,q); Merge_Sort(A,q+1,r); Merge(A,p,q,r); } } public static void Merge(int[] A,int p,int q,int r) { int i=p,j=q+1,k=p; while((i<=q)&&(j<=r)) { if(A[i]<A[j]) B[k++]=A[i++]; else B[k++]=A[j++]; } while(i<=q) B[k++]=A[i++]; while(j<=r) B[k++]=A[j++]; Copia(A,B,p,r); } }