如何在C#中快速检查大数据?

时间:2015-05-16 14:35:43

标签: c#

我有一个20000 - 50000字的列表。我有几页文字,让我们说1000字。我想检查这1000个单词中的每一个是否在我的大列表中并计算匹配,但是逐字检查是太麻烦和不必要的。我想象现实生活中的字典,你可以在几个检查中找到你所寻找的单词,这将是最快的。我是对的,如何实现那个/什么是最好的方式?

我想到使用sqlite和一些查询。

1 个答案:

答案 0 :(得分:6)

  

我想现实生活中的字典,你可以在几张支票中找到你所寻找的字,是最快​​的。

这实际上是一个非常好的例子。想象一下,除了字母表之外,你对字典中的语言一无所知。你仍然可以很快找到这个词。怎么样?

  • 检查中间某处。你选择的单词之前或之后的单词是?消除不匹配的整个字典的一半。
  • 检查剩余值中间的某处......
  • REPEAT ...

这称为binary search。事实上,非常快。它只需要一个前提条件......必须对列表进行排序。

如果您的列表已排序,您可以将其作为一个机会,熟悉计算机科学的基本算法之一,二元搜索。几乎每种编程语言都有的例子,甚至可能有内置的工具和数据类型。 (例如,当你引用其中的值时,我想象SortedList is going to internally implement a binary search