【问题标题】:Find a best way to search data structure string compare寻找搜索数据结构字符串比较的最佳方法
【发布时间】:2014-10-02 09:57:59
【问题描述】:

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

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

例如下面的数据库有两列。

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

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

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

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

【问题讨论】:

  • 你是用c#在内存中搜索,还是在sql中搜索?
  • 您正在执行过早的优化。您正在使程序运行得更快,然后才能正确运行。 “如果它不起作用,它不起作用的速度有多快都没关系。” - Mich Ravera
  • - gunr2171 ,首先在 SQL 中获取列表,然后想在 C# 中控制该列表。
  • 您需要知道给定字符串的 ID/ID,还是只知道它是否存在(真/假)?
  • @clear.choi,最好用sql搜索。为什么将表中的每一行都拉过来只是为了搜索一行? (另外,使用@replies 回复某人)

标签: c# string algorithm data-structures


【解决方案1】:

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

HashSet<T> Class

..或者如果您喜欢冒险,创建“三元搜索树”或“trie”可能是一种选择:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 1970-01-01
      相关资源
      最近更新 更多