Salve, dovrei realizzare un programma che somma l'elemento iniziale delle chiamate del mergesort, precisamente così, abbiamo l'array [0 2 4 3 3]
L'array viene poi diviso in due sotto-array di dimensione 3 e 2, rispettivamente. Le chiamate successive saranno quindi realizzate sui sotto-array [0 2 4] e [3 3]. L'ultima chiamata realizzata su di un array con almeno 2 elementi e quella realizzata sull'array [0 2]. La somma che si vuole calcolare è quindi 0 + 0 + 3 + 0 = 3.
Avevo provato così ma non va, da 6
(conto è una variabile globale)
void mergesort(int a[], int left, int right)
{
if (left< right)
{
int center=(left+right)/2;
if(center+1>1)
conto+=a[left]+a[center+1]-a[center+1];
mergesort(a,left,center);
mergesort(a,center+1,right);
merge(a,left,center,right);
}
}