找到搜索数据结构字符串比较的最佳方法

时间:2014-08-08 20:21:06

标签: c# string algorithm data-structures

我有一个问题,哪种数据结构最适合特定情况。

我们有一个字符串“AAAAAAAAAAA”,我们想知道这个字符串是否包含在一个数据库列中。

例如,在数据库下面有两列。

1. ID   2. Name
  1        A
  2        B
  3        C
.....
49581    AAAAAAAAAAA

如果匹配则返回true,如果不是false。

我知道我可以使用list<string>,但我认为这不是搜索的最佳方式

我想知道在这种情况下哪种数据结构是最佳搜索方式。

2 个答案:

答案 0 :(得分:5)

如果你只需要知道字符串是否存在,HashSet<string>搜索的速度会比List<string>快。

HashSet<T> Class

..或者如果您喜欢冒险,可以选择创建“三元搜索树”或“特里”:

http://www.drdobbs.com/database/ternary-search-trees/184410528

答案 1 :(得分:0)

与另一个答案类似,但请注意,如果您有一个哈希表,那么对于列中的每个哈希字符串,您可以将该字符串的行号存储在该字符串的哈希表位置。因此,散列不仅限于确定字符串是否存在于列中。