Ecco un semplice algoritmo divide et impera che ci dirà quante occorrenze di k ci sono in un vettore.
Anche questo tutorial, come il precedente, può servire ad esercitarsi per l’esame universitario di ‘Algoritmi e strutture dati’
[java]//Occorrenze di k in vet
public class occorrenze_di_k {
public static void main(String[] args) {
int k=2;
int vet[]={6,2,5,2,0,12,2,3};
System.out.println(conta(vet, k, 0, vet.length-1));
}
public static int conta(int vet[], int k, int i, int f){
//Caso base, quando ho solo un elemento
if (i==f) {
if (vet[i]==k)
return 1;
else
return 0;
}
//controllo l’array dividendolo a metà
else {
int a=conta(vet, k, i, (i+f)/2);
int b=conta(vet, k, (i+f)/2+1, f);
return a+b;
}
}
}
[/java]