http://en.wikipedia.org/wiki/Binary_search_algorithm#Average_performancePerformance moyenne de l'algorithme de recherche binaire?
BinarySearch(int A[], int value, int low, int high)
{
int mid;
if (high < low)
return -1;
mid = (low + high)/2;
if (A[mid] > value)
return BinarySearch(A, value, low, mid-1);
else if (A[mid] < value)
return BinarySearch(A, value, mid+1, high);
else
return mid;
}
Si l'entier que je suis en train de trouver est toujours dans le tableau, quelqu'un peut-il me aider à écrire un programme qui permet de calculer le rendement moyen de l'algorithme de recherche binaire?
edit: Je sais que je peux le faire en exécutant le programme et en comptant le nombre d'appels, mais ce que j'essaie de faire ici, c'est de le faire sans appeler la fonction.
edit2: KennyTM: C'est une complexité temporelle, j'essaie de calculer le nombre moyen d'appels. Par exemple, le nombre moyen d'appels pour trouver un entier dans A [2], ce serait 1,67 (5/3)
Si vous êtes "passonate" (vous pourriez vouloir vérifier l'orthographe) vous avez vraisemblablement déjà écrit du code pour le faire - partagez-le avec nous. –
O (log n). _____ – kennytm
O est "pire cas" et non "cas moyen". – Mavrik