c语言使用二分法查找元素位置
时间: 2024-02-21 15:31:53 浏览: 78
二分法查找也被称为折半查找,它是一种高效的查找算法。在有序数组中查找元素时,可以使用二分法查找,其时间复杂度为O(log n)。
C语言中使用二分法查找元素位置的代码如下:
```c
#include <stdio.h>
int binarySearch(int arr[], int left, int right, int x) {
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == x)
return mid;
if (arr[mid] < x)
left = mid + 1;
else
right = mid - 1;
}
return -1;
}
int main() {
int arr[] = { 2, 3, 4, 10, 40 };
int n = sizeof(arr) / sizeof(arr[0]);
int x = 10;
int result = binarySearch(arr, 0, n - 1, x);
if (result == -1)
printf("Element is not present in array");
else
printf("Element is present at index %d", result);
return 0;
}
```
在以上代码中,binarySearch函数接收4个参数:数组arr,数组左侧下标left,数组右侧下标right和要查找的元素x。该函数首先计算中间元素的下标,然后比较中间元素与要查找的元素的大小关系,如果相等则返回中间元素下标,如果中间元素小于要查找的元素,则在数组右侧继续查找,否则在数组左侧继续查找。如果找不到要查找的元素,则返回-1。
阅读全文