二分法查找

二分法查找顾名思义就是把一个有序的数列,先给他除以二

例子:一个数列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 如果还没有找到我们所要寻找的值,那么这个值在这个数组里面根本不存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值