请实现有重复数字的有序数组的二分查找。 输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。

区块链毕设网qklbishe.com为您提供问题的解答

请实现有重复数字的有序数组的二分查找。
输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。

import java.util.Scanner;  // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         // 容量         int size = in.nextInt();         // 目标值         int target = in.nextInt();         // 容器         int[] arr = new int[size];         for (int i = 0; i < size; i++) {             arr[i] = in.nextInt();         }         System.out.println(compute(target, arr));      }      private static Integer compute(int t, int[] intArr) {         int l = 0; // 最左边开始索引         int r = intArr.length - 1; // 最右边结束索引         while (l <= r) { // 循环条件 左指针不大于右指针             int mid = l + (r - l) / 2; // 记录每一次的中位索引->二分查找             if (intArr[mid] < t) { // 比目标值小 说明可能性在数组后程                 l = mid + 1; // 更新左指针为中位数后一个位置的索引             } else if (intArr[mid] >=                        t) { // 大于或等于目标值 把右指针更新为中位数前一个位置的索引                 r = mid - 1;             }         }         // 结果是 返回位置(索引 + 1等于位置)/ 返回数组长度+1         return l < intArr.length ? l + 1 : intArr.length + 1;     } }

16:18

以上就是关于问题请实现有重复数字的有序数组的二分查找。 输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 请实现有重复数字的有序数组的二分查找。 输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。