candide, le 01/10/2008 a écrit :
Bonjour,
Juste un avis perso : le retour de la fonction bsearch est peu exploitable.
Bien souvent, face à une liste croissante, on ne se préoccupe pas essentiellement de savoir si un élément donné s'y trouve ou ne s'y trouve pas, on cherche à savoir où il est placé dans la liste (et éventuellement hors de la liste à gauche ou à droite). Or, quel que soit l'algorithme utilisé par bsearch (recherche séquentielle ou dichotomique), bsearch serait en mesure sans coût supplémentaire excessif de donner cette position. Hélas bsearch se contente de donner une réponse binaire. Et je trouve particulièrement agaçant d'avoir à me recoder un truc aussi classique qu'une recherche dichotomique, pas vous ?
??
Vous ne confondriez pas le retour de bsearch(), un void* pointant vers l'élément ou un élément trouvé, ou (void*) si pas trouvé, et le prototype de la fonction de comparaison à fournir à bsearch() ?
--
Pierre Maurette