阅读量:2
以下是一个用C语言编写的二分查找算法代码示例:
#include <stdio.h> // 二分查找函数 int binarySearch(int arr[], int left, int right, int target) { while (left <= right) { int mid = left + (right - left) / 2; // 中间元素的索引 if (arr[mid] == target) { return mid; // 找到目标元素,返回索引 } else if (arr[mid] < target) { left = mid + 1; // 目标元素在右侧,更新左边界 } else { right = mid - 1; // 目标元素在左侧,更新右边界 } } return -1; // 没有找到目标元素,返回-1 } int main() { int arr[] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}; int n = sizeof(arr) / sizeof(arr[0]); // 数组长度 int target = 12; // 目标元素 int result = binarySearch(arr, 0, n - 1, target); if (result == -1) { printf("目标元素 %d 不存在\n", target); } else { printf("目标元素 %d 的索引为 %d\n", target, result); } return 0; }
这个示例中,我们定义了一个binarySearch
函数,该函数接受一个已经排序的整数数组arr
、左边界left
、右边界right
和目标元素target
作为参数。函数使用while循环来不断缩小搜索范围,直到找到目标元素或搜索范围为空。如果找到目标元素,返回其索引;否则返回-1表示未找到。
在main
函数中,我们定义了一个已经排序的整数数组arr
,并使用sizeof
运算符计算出数组的长度n
。我们指定目标元素为12,并调用binarySearch
函数进行查找。最后根据返回结果输出查找结果。