我有一个20000 - 50000字的列表。我有几页文字,让我们说1000字。我想检查这1000个单词中的每一个是否在我的大列表中并计算匹配,但是逐字检查是太麻烦和不必要的。我想象现实生活中的字典,你可以在几个检查中找到你所寻找的单词,这将是最快的。我是对的,如何实现那个/什么是最好的方式?
我想到使用sqlite和一些查询。
答案 0 :(得分:6)
我想现实生活中的字典,你可以在几张支票中找到你所寻找的字,是最快的。
这实际上是一个非常好的例子。想象一下,除了字母表之外,你对字典中的语言一无所知。你仍然可以很快找到这个词。怎么样?
这称为binary search。事实上,非常快。它只需要一个前提条件......必须对列表进行排序。
如果您的列表已排序,您可以将其作为一个机会,熟悉计算机科学的基本算法之一,二元搜索。几乎每种编程语言都有吨的例子,甚至可能有内置的工具和数据类型。 (例如,当你引用其中的值时,我想象SortedList
is going to internally implement a binary search。