|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
[JAVA] Vorrei vedere ad occhio la differenza tra binaysearch e una ricerca lineare..
Ciao,
volevo vedere ad occhio come la ricerca lineare su un vettore ordinato sia notevolmente più lenta di una binarysearch sullo stesso vettore. Ovviamente mi servirebbe un mega vettore per vedere questa differenza... io avevo provato a fare questo main: Codice:
public static void main(String args[]){
int v[]=new int[10000000];
for(int i=0;i<10000000;i++)
v[i]=i;
int x=Console.readInt("Numero da cercare: ");
int r=Lineare(v,x);
System.out.println("Posizione: "+r);
}
Come potrei fare? Poi come posso inserire nel programma (sia nella ricerca binaria sia in quella lineare) un cronometro per avere un risultato preciso di quanto ci mettono?
__________________
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Conta le iterazioni invece di usare il tempo...
Ogni volta che fai un contronto per vedere se l'elemento su cui sei posizionato è quello che cercavi incrementi di 1 un contatore... Al teremine del programma stampi il contatore... |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
oppure se vuoi vedere a occhio fai eseguire la ricerca un migliaio di volte e non una sola...
cmq ti consiglio di contare le iterazioni
__________________
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Quote:
Io vorrei lanciare prima la ricerca binaria e poi la ricerca lineare sulla stessa istanza e fargli cercare l'ultimo elemento.. e vorrei in qualche modo vedere ad occhio nudo la ricerca lineare soffrire e quella binaria farcela in un paio di secondi Ma un modo per far fare la ricerca su un mega vettore molto più grande di 10'000'000 celle non c'è?
__________________
|
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Quote:
__________________
|
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
per aumentare la dimensione del vettore basta aumentare la dimensione massima dell heap space allocata dalla java VM.
L'opzione è la seguente: Quote:
__________________
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Quote:
Mentre la lineare già ripetendola solo 1000 volte ci mette un 40-45 secondi!!
__________________
Ultima modifica di luxorl : 24-01-2006 alle 14:02. |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
|
Quote:
__________________
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
è tra le opzioni della VM java..
quando lanci java.exe in pratica....
__________________
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:49.



















