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

A66893. 给定序列:1 ,3 ,6 ,9, 17 ,31 ,39 ,52 ,61 ,79 ,81 ,90 ,96 。使⽤以下代码进⾏⼆分查找查找元素82时 ,需要循环多少次, 即最后输出的times值为( ) 。1 int binarySearch(const std::vector<int>& arr, int target) {

单选题

题目描述

给定序列:1 ,3 ,6 ,9, 17 ,31 ,39 ,52 ,61 ,79 ,81 ,90 ,96 。使⽤以下代码进⾏⼆分查找查找元素82时 ,需要循环多少次, 即最后输出的times值为(  ) 。

1 int binarySearch(const std::vector<int>& arr, int target) {
2  int left = 0;
3  int right = arr.size() - 1;
4  int times = 0;
5  while (left <= right) {
6   times ++;
7   int mid = left + (right - left) / 2;
8   if (arr[mid] == target) {
9    cout << times << endl;
10   return mid;
11   } else if (arr[mid] < target) {
12    left = mid + 1;
13   } else {
14    right = mid - 1;
15   }
16  }
17  cout << times << endl;
18  return -1;
19 }

选项(单选)