例如,我们在数组中有5
值(a,b,c,e,d
(,其中可能包含重复的值。a,b,c,d,e
的值由另一个函数计算,并分配了一些值。 让用户输入值x
。 我们需要在数组中找到最接近x
的值,并且输出必须在a,b,c,e,d
中。如果最接近的数字是重复项之一,则必须考虑字母顺序。
例如:
Array: a,b,c,e,d
a=6,b=5,c=3,d=9,e=9
是函数分配给它们的值。
for x : 5,
output : b
for x :11,
output : d
for x : 4,
output :c
尝试实现以下算法:
- 获取数组中间的元素;
- 如果这个元素的值是
x
,数组包含它,你知道要打印什么; - 如果元素较大,则查看数组的前半部分;
- 否则查看数组的后半部分;
一旦您搜索的数组部分的大小为0
,您就找到了插入x
以保留排序的位置。最接近的值是左侧的值或右侧的值(如果有(。计算差异以确定要打印的内容。