ciao a tutti,
sto studiando la ricerca binaria di array per cercare un elemento piu velocemente nell array, sto cercando di fare quest esercizio, l algoritmo che ho scritto mi sembra corretto ma continua a darmi come risultato 0. Qualcuno mi può dare una mano
codice:/*Scrivere un metodo che, dati due array di interi, ciascuno dei quali è composto da elementi distinti ed è ordinato in modo crescente calcola e restituisce il numero di elementi comuni tra i due array. Ad esempio, se i due array valgono rispettivamente {2,7,11,21,48,89} e {7,11,15,21,42,45} allora il numero di elementi comuni è 3*/ class RB_elementi_comuni{ public static int check(int[] a, int[] b){ int sinistra; int destra; int centro; int occ; int i; sinistra=0; destra=a.length; occ=0; for(i=0; i<a.length; i++){ while(sinistra<destra){ centro=(sinistra+destra)/2; if(a[i]==b[centro]){ occ=occ+1; } else if(a[i]>b[centro]){ destra=centro; } else sinistra=centro+1; } } return occ; } public static void main(String[] args){ System.out.println(RB_elementi_comuni.check(new int[]{2,7,11,21,48,89}, new int[]{7,11,15,21,42,45})); } }

Rispondi quotando