给定序列:1,3,6,9,17,31,39,52,61,79,81,90,96。使用以下代码进行二分查找查找元素 82时,需要循环多少次,即最后输出的 times 值为( )。
int binarySearch(const std::vector<int>& arr, int target) { int left = 0; int right = arr.size() - 1; int times = 0; while (left <= right) { times ++; int mid = left + (right - left) / 2; if (arr[mid] == target) { cout << times << endl; return mid; } else if (arr[mid] < target) { left = mid + 1; } else { right = mid - 1; } } cout << times << endl; return -1; }
2
5
3
4