编辑代码

public class BinarySearch {
    public static int binarySearch(int[] arr, int key) {
        int left = 0;
        int right = arr.length - 1;

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

            // 如果中间元素等于要查找的元素,则返回索引
            if (arr[mid] == key) {
                return mid;
            }
            // 如果中间元素大于要查找的元素,则在左半部分继续查找
            else if (arr[mid] > key) {
                right = mid - 1;
            }
            // 如果中间元素小于要查找的元素,则在右半部分继续查找
            else {
                left = mid + 1;
            }
        }
        return -1;
    }

    // 测试主函数
    public static void main(String[] args) {
        int[] arr = {6, 17, 25, 34, 52, 63, 85};
        int key = 6;
        int result = binarySearch(arr, key);
        if (result != -1) {
            System.out.println("元素 " + key + " 在数组中,索引为:" + result);
        } else {
            System.out.println("元素 " + key + " 不在数组中");
        }
    }
}