int ara(int dizi[], int ilk, int son, int deger) {
int indeks;
if (ilk > son)
return 0;
indeks = (ilk + son)/2;
if (dizi[indeks] < deger)
return ara(dizi, indeks+1, son, deger);
else if (dizi[indeks] > deger)
return ara(dizi, ilk, indeks-1, deger);
else
return 1;
}
for (i=1; i<2*n; i++) {
printf("Bir sayi giriniz: ");
scanf("%d", &sayi);
sonuc = ara(matrix, 0, n-1, sayi);
if (sonuc == 1)
printf("Found!\n");
else
printf("Not Found!\n");
}
quelle peut être la notation big-O de ce code? ma conjecture est N * (2^(logN))grande notation O de ce code
J'ai déjà attribué mon hw! c'est juste ma pré-curiosité!
Vous pouvez simplifier votre réponse plus loin (je ne suis pas sûr que ce soit correct ou non). En supposant que log est la base 2, 2^(log N) = N, votre réponse serait O (N^2). – Mike
Votre estimation est fausse. :-) –
Pourquoi est-ce fermé comme pas une vraie question? Il y a une question ici, avec une réponse précise (pas celle que l'interlocuteur pensait), donnée par éphémient. –