2012-04-25 92 views
-3

其实,我正在做我的家庭作业。而且,我真的被卡住了。字符串中的二进制搜索多维数组

我需要以正确的方式学习Java。我的老师没有教我们关于使用字符串的二进制搜索。所以,我不得不至少花费几个小时研究这个话题。

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

例如

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

我需要输入搜索 '约翰',它会显示输出 '约翰ABC,123'。

有人可以提出一些二进制搜索的原则指导?

+1

你应该寻找一个在线教程。它比我们任何人都会做得更好 – ControlAltDel 2012-04-25 21:08:24

回答

3

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

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

2

Arrays.binarySearch目前支持一维数组。

因此,您必须将您的阵列缩小到一维,然后致电binarySearch()

例子:

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