Pagina 1 di 1

[Algoritmi] Esercizio troppo facile? Divide&Conq prodotto

MessaggioInviato: 31 ago 2017, 14:51
da Patras
Ciao a tutti! Ho fatto un esercizio che mi sembra troppo semplice per la verifica in cui si trovava. Forse è stato buttato come chance di recupero. Ecco la consegna:
Dato un vettore a_1, ..., a_n di n interi, si vuole calcolarne la produttoria a_1, ..., a_n. Si scriva lo pseudo-codice di un algoritmo di complessità ottima che utilizzi la tecnica divide-et-impera con partizione bilanciata dei dati.

Io l'ho scritto in java per abitudine. Però se n è dispari bisogna fare un controllo perché non si può dividere in due parti. Vi sembra giusto? O manca qualcosa?

Codice: Seleziona tutto
public static int getProduct(int[] v)
{
   int prod=v[length-1]; //tanto lo sovrascrivo n è pari
   if(v.length%2=0)
      prod = product(v,0,v.length-1);
   else
      prod *= product(v,0,v.length-2);
   return prod;
}
private static int product(int[] a, int j, int i)
{
   if(i==j+1)
      return a[j]*[i];
   int mid=(j+i)/2;
   return product(a, i, mid)*product(a, mid+1, j);
}