luxorl
24-01-2006, 13:24
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:
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);
}
Ma ancora sono pochi gli elementi da controllare per vedere la differenza ad occhio nudo, e se aumento ancora la dimensione del vettore ho un OutOfMemoryError: Java Heap Space..
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?
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:
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);
}
Ma ancora sono pochi gli elementi da controllare per vedere la differenza ad occhio nudo, e se aumento ancora la dimensione del vettore ho un OutOfMemoryError: Java Heap Space..
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?