二分查找
原理
二分查找适用于按顺序排列的线性表,首先选取表中间位置,将其分为两个子表,将中间位置的值与指定查找的值相比较,相等则查找成功并返回,若小于指定的值,则取其右(左)子表,若大于指定的值,则取其左(右)子表,重复上述步骤,直到找到指定的值或查找失败
int binarySearch(int value
,int num
[],int length
)
{
int right
,left
,mid
;
right
= length
- 1;
left
= 0;
int count
= 0;
while(left
< right
)
{
count
++;
mid
= (left
+ right
) / 2;
if(value
< num
[mid
])
{
right
= mid
- 1;
}
else if(value
> num
[mid
])
{
left
= mid
+ 1;
}
else if(value
== num
[mid
])
{
return mid
;
}
}
return -1;
}
转载请注明原文地址: https://mac.8miu.com/read-513566.html