Voici une fonction de recherche binaire.Comment déterminez-vous la notation Big-O d'une boucle while?
int search(int a[], int v, int left, int right)
{
while (right >= left)
{
int m = (left + right)/2;
if (v == a[m])
return m;
if (v < a[m])
right = m - 1;
else left = m + 1;
}
return -1;
}
Comment déterminer la notation Big-O pour cette fonction?
Cette fonction de recherche est-elle O (n) puisque la boucle while dépend de la valeur left?
Si ce n'était pas vous auriez-vous été accepté si rapidement? – ChaosPandion
Étant donné que la question commence par 'Ceci est une recherche binaire ...', à moins que le code ne soit vraiment bousillé, la réponse est claire. Accepté à juste titre, OMI. –
@Shane - Il est clair que cette personne apprend la notation. Comment sait-il que c'est correct? – ChaosPandion