二分法查找 学习笔记
二分法简介
二分法查找,是一种在已经排好顺序的数组中查找特定元素的方法。
这种方法的基本思路如下:
数组a[],所寻找的特定元素x。
1、设3个指针:
l:指向数组第一个数。
h:指向数组中间数(h = (l + r) / 2)。
r:指向数组最后的数。
2、将x与a[h]作比较,
(1) 若a[h] > x :将r指针向前移到h-1;
(2) 若a[h] < x :将l指针向后移到h+1;
3、重新定义h指针:h = (l + r) / 2。
将上述步骤写入循环里,当 l < r - 1 时,退出循环。
主程序如下
int l, h, r, num[m], x; //x为特定元素,m为数组大小
l = 0;
r = m - 1;
while (l < r - 1) {
h = (l + r) / 2;
if(x == num[h]) {
printf("%d", h);
return 0;
}
else if(x > num[h]) {
l = h + 1;
}
else {
r = h - 1;
}
}
来源:CSDN
作者:摇啊摇曳瑶
链接:https://blog.csdn.net/weixin_43900761/article/details/90321620