分类集中的二进制搜索

时间:2015-08-20 16:06:40

标签: java set binary-search sortedset

我有TreeSet<Integer> set = new TreeSet<>();

我用一些值填充集合: set.add(i); // i=1,5,7,44,9,7 由于它是一个有序的Set,我应该能够拥有如下的集合。 1 - 5 - 7 - 9 - 44

现在我想知道9在集合中的位置,在这种情况下为3

1)我可以进行线性搜索,迭代集合,增加一个值,当前元素不等于我搜索的元素,

2)我可以进行Binery递归搜索,确定长度,将集合分成两部分,获取第一个子集的最后一个元素,然后确定,我在哪个子集中进行搜索,依此类推。

是否有更便宜的方法来搜索集合中某个值的索引?

0 个答案:

没有答案