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不在数组中。


本文标签: 数组 查找 元素 目标值 过程