练习1:
题目名称:二分查找-函数实现
题目内容:写一个二分查找函数
功能:在一个升序数组中查找指定的数值,找到了就返回下标,找不到就返回-1.
int bin_search(int arr[], int left, int right, int key) //arr 是查找的数组 //left 数组的左下标 //right 数组的右下标 //key 要查找的数字
#include <stdio.h>
// 二分查找函数
int bin_search(int arr[], int left, int right, int key) {
while (left <= right) {
int mid = left + (right - left) / 2; // 计算中间位置
if (arr[mid] == key) {
return mid; // 找到目标值,返回下标
}
else if (arr[mid] < key) {
left = mid + 1; // 目标值在右半部分
}
else {
right = mid - 1; // 目标值在左半部分
}
}
return -1; // 未找到目标值
}
int main() {
int arr[] = { 1, 3, 5, 7, 9, 11, 13 }; // 升序数组
int n = sizeof(arr) / sizeof(arr[0]); // 数组长度
int key = 9; // 要查找的值
int result = bin_search(arr, 0, n - 1, key);
if (result != -1) {