Salve ragazzi sto per affrontare un esame all'uni dove più che altro mi viene chiesto di scrivere algoritmi in pseudolinguaggio. Mi è stato chiesto di scrivere un algoritmo con il metodo ricorsivo Divide Et Impera, dove mi veniva dato un array di interi continuo (cioè con il primo estremo negativo e l'altro positivo, e la somma dell'elemento corrente e quello successivo deve essere di 1, quindi per farla breve un array di interi in ordine crescente) e dovevo ricercare l'indice dell'elemento uguale a 0.
Io l'ho scritto in questo modo, ma non ricordo bene praticamente il metodo D&I e volevo chiedere se fosse giusto così:
#include <stdio.h>
#include <stdlib.h>
int ricerca (int a[], int primo, int ultimo);
int main(){
int array[5] = {-2, -1, 0, 1, 2};
int k;
k = ricerca(array, 0, 4);
printf("%d", k);
return 0;
}
int ricerca (int a[], int primo, int ultimo)
{
int m;
m = primo+ultimo/2;
if(primo == ultimo)
{
if(a[primo] == 0)
{
return m;
}
} else
{
if(a[m] >=0)
{
return ricerca (a, primo, m);
} else
{
return ricerca (a, m+1, ultimo);
}
}
return -1;
}
Sembra funzionare volevo sapere solo se ho applicato tutto correttamente ed ho rispettato ciò che mi è stato chiesto.
Ringrazio anticipatamente
PS. Dimenticavo per verificare se fosse giusto l'ho scritto in C, linguaggio a me più comodo