二进制搜索字符串中的多维数组

时间:2012-04-25 21:03:27

标签: java search binary-search

实际上,我正在完成我的家庭作业。而且,我真的被卡住了。

我需要以正确的方式学习Java。我的老师没有教我们使用String进行二进制搜索。所以,我必须至少花几个小时研究这个话题。

我需要一些简单的解释和代码。

例如

String[][] data={{"John abc","123"},{"Nike cbd","321"}};

我需要输入搜索' John ',它会显示输出' John abc,123 '。

有人可以就二元搜索的原则提出一些指导吗?

2 个答案:

答案 0 :(得分:3)

使用字母字符串比较,可以对字符串进行排序和比较,就像数字一样。为简单起见,我们假设只有英语,“ABD”大于“ABC”等等。

因此,您为数字找到的任何二进制搜索算法示例都适用于字符串,前提是您拥有的列表当然是排序的。这个想法当然很简单 - 每次迭代都会将你的候选人缩小一半,直到找到合适的人选。

答案 1 :(得分:2)

一维数组目前支持

Arrays.binarySearch

因此,您必须将数组缩小到一个维度,然后调用binarySearch()

示例:

for(String[] oneDimension : multiDimension ){
   Arrays.sort(oneDimension);
   Arrays.binarySearch(oneDimension, 'search-field');
}