用c++编写程序,使用指针完成二分查找
时间: 2023-05-27 14:06:05 浏览: 59
以下是用 C 语言编写的二分查找程序,使用指针完成:
```
#include <stdio.h>
int binary_search(int arr[], int n, int target) {
int left = 0, right = n - 1;
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;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 5;
int* ptr = &arr[0];
int index = binary_search(ptr, n, target);
if (index != -1) {
printf("Target found at index %d\n", index);
} else {
printf("Target not found\n");
}
return 0;
}
```
该程序定义了一个 `binary_search` 函数,它使用指针 `arr` 作为数组的首元素地址,`n` 表示数组的长度,`target` 表示要查找的目标元素。程序还定义了一个指向数组首元素的整型指针 `ptr`,用于调用 `binary_search` 函数。
在 `main` 函数中,首先定义了一个数组 `arr` 和变量 `n`,然后定义了变量 `target`,表示要查找的目标元素。接下来将指向数组首元素的指针 `ptr` 传递给 `binary_search` 函数,并获取返回值 `index`。
最后,根据 `index` 是否等于 -1 来判断查找是否成功,并输出相应的信息。