📅  最后修改于: 2023-12-03 15:11:16.847000             🧑  作者: Mango
本程序实现了在一个升序排列的数组中查找指定的数,并返回该数的天花板值。天花板值指大于等于该数的最小整数值。
本程序采用二分查找算法寻找指定的数,并返回其天花板值。具体实现流程如下:
以下是本程序的完整代码实现,使用Python3语言编写:
def findCeil(arr, n):
l = 0
r = len(arr) - 1
while(l <= r):
mid = l + (r - l) // 2
if(arr[mid] == n):
return mid
elif(arr[mid] < n):
l = mid + 1
else:
r = mid - 1
if(l == len(arr)):
return -1
return l
以上代码定义了一个findCeil
函数,它接受两个参数,分别为一个升序排列的数组和指定的数。该函数使用二分查找算法,返回指定数的天花板值。
以下是一个本程序的测试示例,用于测试程序的正确性:
arr = [1, 2, 3, 4, 8, 10, 12, 19]
n = 5
print(findCeil(arr, n))
以上代码将输出结果为 4
,即在数组arr
中,指定数5
的天花板值为数组中大于等于指定数的最小整数值8
所在的位置。