编辑代码

#include <stdio.h>  
  
int binary_search(int arr[], int n, int target) {  
    int low = 0;  
    int high = n - 1;  
    int mid;  
  
    while (low <= high) {  
        mid = (high + low) / 2;  
        if (arr[mid] == target) {  
            return mid;  // 找到目标,返回其索引  
        } else if (arr[mid] < target) {  
              high = mid - 1;  // 目标在左半部分  
         
        } else {  
               low = mid + 1;  // 目标在右半部分
        }  
    }  
    return -1;  // 没有找到目标,返回-1  
}  
  
int main() {  
    int arr[] = { 85, 63, 52, 6 , 34, 25, 17, };  
    int n = sizeof(arr) / sizeof(arr[0]);  
    int target = 6;  
    int result = binary_search(arr, n, target);  
    if (result != -1) {  
        printf("元素 %d 在数组中的索引为 %d\n", target, result);  
    } else {  
        printf("元素 %d 不在数组中\n", target);  
    }  
    return 0;  
}