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

标签 java binary-search

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

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

最佳答案

二分搜索在排序输入上运行。您可以定义 order还在于言语,而不仅仅是值(value)观。

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

<小时/>

二分查找的小例子:

Binary search illustration

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

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

关于java - 如何使用仅使用单词而不使用数字的二分搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678455/

相关文章:

arrays - 使用二进制搜索的三元组总和

java - 从排序数组中交换了哪些数字

java - 循环/搜索数组直到特定索引

java - 排序插入位置

java - HashMap在某些情况下显示为空

java - 加快提取 Zip 文件

java - Java 8 将支持 CA-sv?

java - 如何使用 GSON 忽略对象列表中对象内部的 transient 字段定义

java - 结果集到 Excel 文件

javascript - 什么是计算加权和的有效算法?