现有一有序数据序列:2、6、7、8、12、14、15、24,数据序列采用一维数组存储格式。编写对分查找算法的程序,并查找关键字为7的数据,输出其位置。
时间: 2024-05-03 11:18:39 浏览: 43
用一维数组表现的顺序存储结构
好的,我可以帮你写一个二分查找算法的程序来查找关键字为7的数据在该有序序列中的位置。以下是示例代码:
```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, 6, 7, 8, 12, 14, 15, 24};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 7;
int result = binarySearch(arr, 0, n - 1, target);
if (result == -1) {
printf("目标元素 %d 未找到!\n", target);
} else {
printf("目标元素 %d 在有序序列中的位置是:%d\n", target, result);
}
return 0;
}
```
输出结果为:
```
目标元素 7 在有序序列中的位置是:2
```
说明目标元素7在该有序序列中的下标位置为2。
阅读全文