#include <stdio.h>
#define LEN 8
int a[LEN] = { 1, 3, 3, 3, 4, 5, 6, 7 };
int binarysearch(int number)
{
int mid, start = 0, end = LEN - 1;
while (start <= end) {
// 当start = end时候,还不是要找的元素,那么下一次则start < end,return -1
mid = (start + end) / 2; // 不断地折半
if (a[mid] < number)
start = mid + 1;
else if (a[mid] > number)
end = mid - 1;
else // a[mid] >= number 且 a[mid] <= number,那么a[mid] = number
return mid;
}
return -1;
}
int main(void){
printf("%d\n", binarysearch(2));
return 0;
}
折半查找
最新推荐文章于 2020-12-19 19:03:48 发布