编辑代码

#include <iostream>
#include <vector>

using namespace std;

// 二分查找算法(适用于降序数组)
int binarySearch(const vector<int>& arr, int target) {
    int left = 0;
    int right = arr.size() - 1;

    while (left <= right) {
        int mid = left + (right - left) / 2;

        if (arr[mid] == target) {
            return mid;  // 找到目标元素,返回索引
        } else if (arr[mid] < target) {
            right = mid - 1;  // 目标在左半部分
        } else {
            left = mid + 1;  // 目标在右半部分
        }
    }

    return -1;  // 未找到目标元素
}

int main() {
    // 初始化有序数组(降序)
    int arr[] = {85, 63, 52, 34, 25, 17, 6};
    vector<int> vec(arr, arr + sizeof(arr) / sizeof(arr[0]));

    // 调用二分查找算法
    int target = 6;
    int result = binarySearch(vec, target);

    // 输出结果
    if (result != -1) {
        cout << "元素 " << target << " 在数组中的索引是: " << result << endl;
    } else {
        cout << "元素 " << target << " 未在数组中找到" << endl;
    }

    return 0;
}