stdlib: optimize bsearch()
... by checking most probable condition first (elements do differ) Change-Id: I424eab9c32a6d9eb82b686ca04025ec8c9097035 Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
This commit is contained in:
parent
4ad72f89b1
commit
acdb052030
@ -56,11 +56,11 @@ bsearch(const void *key, const void *base0, size_t nmemb, size_t size,
|
||||
for (lim = nmemb; lim != 0; lim >>= 1) {
|
||||
p = base + (lim >> 1) * size;
|
||||
cmp = (*compar)(key, p);
|
||||
if (cmp == 0)
|
||||
return ((void *)p);
|
||||
if (cmp > 0) { /* key > p: move right */
|
||||
base = (char *)p + size;
|
||||
lim--;
|
||||
} else if (cmp == 0) {
|
||||
return ((void *)p);
|
||||
} /* else move left */
|
||||
}
|
||||
return (NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user