二分法查找顾名思义就是把一个有序的数列,先给他除以二
例子:一个数列1 ,2,3,4,5,6,7,8,9,10;
我们需要找到7
先设立一个变量left 数组的下标为0
left = 0;
right = sizeof(arr) - 1;
mid = (left + right) / 2;
while ( left <= right)
其实就是一个不断移动的过程,在不同的区间里面,如何移动就是要用到 + 1;
if (x = arr[mid]); 这个说明就是找到了,直接return 就行了,
if ( x < arr[mid]); 说明需要在mid的左边去寻找,x,
left = 0; right = mid - 1;
为什么要-1 呢因为 判断条件里面就包含了arr[mid]的值,不需要right = mid
同理可得x > arr[mid]
左右两边不断向中间逼近,到了最中间的那个值的时候,left = right 如果还没有找到我们所要寻找的值,那么这个值在这个数组里面根本不存在。