allora il primo elemento del vettore è il bersaglio da cercare, i restatnti son numeri inseriti in ordine crescente.
Il programma compila ma non funziona e non capisco dove sbaglio.
Durante l'esecuzione da l'errore alla riga 22, cioè alla prima volta che compare la ricorsione.
import java.io.*;
import java.util.*;
public class trova{
int[] vettore=new int[10];
public static boolean trova( int sinistro ,int destro,int[] vettore){
int num=vettore[0];
boolean trovato=false;
int[] app=vettore;
int a,b;
b=destro;
a=sinistro;
int mid=b/2;
System.out.println(mid);
if (vettore[mid]==num){
trovato=true;
}
else{
if (vettore[mid]<num){
trova(mid+1,b, app);
}
else
{trova(a,mid-1,app);
}
}
return(trovato);
}
public static void main(String[]args){
BufferedReader C = new BufferedReader (new InputStreamReader(System.in));
String numeri="";
try{
System.out.println("Scrivi una serie di 10 numeri intervallati da uno '-'") ;
numeri=C.readLine();
}catch (Exception e){System.out.println("errore");}
StringTokenizer tokenizer = new StringTokenizer(numeri,"-");
int[] vett=new int[10];
for(int i=0;i<10;i++){
vett[i]=Integer.parseInt(tokenizer.nextToken());
}
for(int i=0;i<10;i++){
System.out.println(vett[i]);
}
boolean cerca=false;
cerca=trova(1,9,vett);
if (cerca){
System.out.println("trovato");
}
else{System.out.println("non trovato");}
}
}
potreste gentilmente aiutarmi a trovare cosa non va?