在庞大的新城户籍数据库中查找特定ID。以下二分查找代码查找 target=15 在数组 {5, 10, 15, 20, 25} 中的位置。变量 steps 记录了循环次数,其最终值是多少?
int arr[] = {5, 10, 15, 20, 25};
int target = 15, steps = 0;
int left = 0, right = 4;
while (left <= right) {
steps++;
int mid = (left + right) / 2;
if (arr[mid] == target) break;
else if (arr[mid] < target) left = mid + 1;
else right = mid - 1;
}
1
2
3
4