在Python中,你可以使用列表推导式和enumerate函数来实现这个分块查找算法。以下是一个示例: ```python def block_search(arr, target, block_size): for i in range(0, len(arr), block_size): block = arr[i:i+block_size] if target in block: return i + block.index(target) return -1 arr = [1, 2, 3, 4, 5, 6, 7, 8] target = 6 result = block_search(arr, target, 4) print(result) ``` 在这个代码中,我们首先定义了一个函数`block_search`,它接受一个数组`arr`,一个目标值`target`和一个块大小`block_size`作为参数。然后,我们使用`range`函数和步长`block_size`来遍历数组,每次取出一个长度为`block_size`的子数组。如果目标值在当前子数组中,我们就返回该子数组中目标值的索引加上当前子数组的起始索引。如果遍历完整个数组都没有找到目标值,就返回-1。 在这个例子中,输出结果应该是3,因为元素6在索引3处。 [2024-06-04 14:58:41 | AI写代码神器 | 265点数解答]