事实上,我正在做我的家庭作业。而且,我真的被困住了。
我需要以正确的方式学习 Java。我的老师没有教我们使用字符串进行二分搜索。所以,我不得不至少花几个小时研究这个话题。
我需要一些简单的解释和代码。
例如:
String[][] data={{"John abc","123"},{"Nike cbd","321"}};
我需要输入来搜索“ John ”,它会显示输出“ John abc, 123 ”。
有人可以就二分搜索的原则提出一些指导吗?
事实上,我正在做我的家庭作业。而且,我真的被困住了。
我需要以正确的方式学习 Java。我的老师没有教我们使用字符串进行二分搜索。所以,我不得不至少花几个小时研究这个话题。
我需要一些简单的解释和代码。
例如:
String[][] data={{"John abc","123"},{"Nike cbd","321"}};
我需要输入来搜索“ John ”,它会显示输出“ John abc, 123 ”。
有人可以就二分搜索的原则提出一些指导吗?
字符串可以像数字一样进行排序和比较,使用字母字符串比较。为简单起见,我们假设只有英语,“ABD”大于“ABC”等等。
因此,您为数字找到的任何二进制搜索算法示例都适用于字符串,前提是您拥有的列表当然是排序的。这个想法当然很简单 - 每次迭代将候选人缩小一半,直到找到合适的候选人。
Arrays.binarySearch
目前支持一维数组。
因此,您必须将数组缩小到一维,然后调用binarySearch()
.
例子:
for(String[] oneDimension : multiDimension ){
Arrays.sort(oneDimension);
Arrays.binarySearch(oneDimension, 'search-field');
}