如何使用仅使用单词而不使用数字的二分搜索?

1 java binary-search

我被要求使用二分搜索来查找我们读取的文件中的特定单词。

我不明白的问题是当您查找单词而不是数字时如何使用二分搜索。

Zab*_*uza 5

二分搜索对排序的输入进行操作。您还可以定义单词的顺序,而不仅仅是值。

例如字典顺序。在 Java 中,这甚至被实现为s的自然顺序String。所以你可以这样做"text1".compareTo("text2"),它会返回订单。


二分查找的一个小例子:

二分查找图

如您所见,算法中唯一需要决定的是两个对象之间的顺序。例如,从图像中,7 < 14和7 > 6。如前所述,您也可以为Strings 执行此操作。事实上,对于您定义订单的所有内容。

实际上Java中的许多类(不止150)都实现了自然顺序,它们都列在接口Comparable(文档)下,它们都提供了compareTo具有有意义的顺序的方法。