-1

我在“不成功的搜索返回一个表示插入点的 int 索引中不理解这一点Collection 。插入点是集合/数组中将插入元素以保持集合/数组正确排序的位置。因为正返回值和 0 表示搜索成功,该binarySearch() 方法使用负数表示插入点。由于0 是成功搜索的有效结果,所以第一个可用的插入点为 -1。因此,实际插入点表示为 (-(insertion point) -1). 例如,如果搜索的插入点位于元素 2,则返回的实际插入点将为 -3。 "

4

1 回答 1

0

api 使用范围 [0, intinity) 来表示 FOUND 结果 - 因此返回 0 意味着它实际上在索引 0(集合/数组的第一个索引)中找到了您要查找的内容。

这意味着可用于返回 NOT_FOUND 结果的范围是负数 - (-inf, -1]

那么,在这种约束下,您如何传达结果“未找到请求的元素,但应在索引 0 处插入”?

您不能返回 -0,因为这与 +0 相同并且会指示 FOUND 结果。所以你给你的负数加上一个偏移量。这样“应该在索引 0”变成 -1,“应该在索引 1”变成 -2 等等。

于 2013-04-22T05:26:59.780 回答