public static int search(int [] nums,int target){ int left0; int rightnums.length-1; while (leftright){ int mid(leftright)/2; if(nums[mid]target){ return mid; }else if(nums[mid]target){ rightmid-1; }else if(nums[mid]target){ leftmid1; } } return -1; }算法逻辑说明初始化两个指针left和right分别指向数组的起始和末尾位置。在循环中计算中间位置mid比较中间元素与目标值的大小关系。根据比较结果调整搜索范围的边界直到找到目标值或搜索范围为空。时间复杂度分析二分查找的时间复杂度为O(log n)其中n是数组的长度。每次迭代都将搜索范围减半使得算法非常高效尤其适合大规模有序数据的查找场景。边界条件处理当目标值不存在于数组中时循环最终会因为left超过right而终止返回-1表示未找到。该实现正确处理了空数组和单元素数组等边界情况。