已排序数组二分查找示例.
有需要的话, 只需要将key及array改为结构体之类,用比较函数来判断大小。
-
int *bsarray (int key, int *array, size_t array_size)
-
{
-
int *s = array;
-
int *e = array + array_size - 1;
-
int *sp = NULL;
-
-
while(s <= e)
-
{
-
sp = s + (e - s) / 2;
-
-
if(key > *sp)
-
{
-
s = sp + 1;
-
}
-
else if (key < *sp)
-
{
-
e = sp - 1;
-
}
-
else
-
{
-
return sp;
-
}
-
}
-
-
return NULL;
-
}
阅读(1103) | 评论(0) | 转发(0) |