admin 管理员组文章数量: 1086019
2024年3月19日发(作者:sqlserver2000配置远程连接)
c 二分法查表 函数
二分查找法是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组
的中间元素开始,如果中间元素正好是目标值,则搜索过程结束;如果目标值大
于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且同样从
中间元素开始比较。如果在某一步骤数组为空,则代表找不到。
以下是一个用C语言实现的二分查找法的例子:
```c
#include
int binary_search(int arr[], int l, int r, int x)
{
while (l <= r) {
int m = l + (r - l) / 2;
// 如果 x 存在于 mid 中
if (arr[m] == x)
return m;
// 如果 x 小于 mid,那么只能在左半部分中查找
if (arr[m] > x)
r = m - 1;
// 如果 x 大于 mid,那么只能在右半部分中查找
else
l = m + 1;
}
// x 不在数组中,返回 -1
return -1;
}
int main()
{
int arr[] = {2, 3, 4, 10, 40};
int n = sizeof(arr) / sizeof(arr[0]);
int x = 10;
int result = binary_search(arr, 0, n - 1, x);
(result == -1) ? printf("Element is not present in array")
: printf("Element is present at index %d", result);
return 0;
}
```
这个程序首先定义了一个有序数组,然后定义了一个目标值x,接着调用二分查
找函数binary_search来查找x在数组中的位置。如果找到了x,函数就返回x
在数组中的位置;否则,返回-1表示x不在数组中。
版权声明:本文标题:c 二分法查表 函数 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1710859510a576686.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论