测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A30974. 根据下述二分查找法,在排好序的数组 1,3,6,9,17,31,39,52,61,79 中查找数值 31 ,循环while (left <= right) 执行的次数为( )。int binary_search(vector<int>& nums, int target) { int left = 0; int right = nums.size() - 1; while (left <= ri…

单选题 困难

题目描述

根据下述二分查找法,在排好序的数组 1,3,6,9,17,31,39,52,61,79 中查找数值 31 ,循环while (left <= right) 执行的次数为( )。

int binary_search(vector<int>& nums, int target) {

      int left = 0;

      int right = nums.size() - 1;

      while (left <= right) {

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

            if (nums[mid] == target) {

                  return mid;

            }

            else if (nums[mid] < target) {

                  left = mid + 1;

            }

            else {

                  right = mid - 1;

            }

      }

      return -1; // 如果找不到目标元素,返回-1

}

选项(单选)

上一题 下一题