您的位置:首页 > 其它

二分查找

2016-04-11 20:03 309 查看
二分查找就是折半查找,主要思想:
将要查找的数与表的中间的元素进行比较,若该数与中间值相等那么查找成功;如果该数大于中间的数,那么这个数一定在右子表中,继续对右子表进行折半查找;若该数比中间值小,那么这个数一定在左子表中,继续对左子表进行差找。知道查找成功或查找失败。
二分查找的函数代码如下:
void binary_search(int arr[], int size, int key)
{
int low, high, mid,count=0,count1=0;
low = 0;
high = size - 1;
while (low <= high)
{
count++;//record for number;
mid = (low + high) / 2;
if (key > arr[mid])
{
low = mid + 1;
}
else if (key < arr[mid])
{
high = mid - 1;
}
else if (key == arr[mid])
{
count1++;
printf("success!\nsearch %d times!arr[%d]=%d", count, mid, key);
break;
}
}
if (count1 == 0)
printf("no found!");
}
主函数代码如下:
int main()
{
int arr[100],key ,n, i;
printf("please input the length of array:\n");
scanf("%d", &n);
printf("please input element:\n");
for (i = 0; i < n;i++)
scanf("%d", &arr[i]);
printf("please input the number which do you want to search:\n");
scanf("%d", &key);
binary_search(arr, n, key);
printf("\n");
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: