我的问题的最佳数据结构和算法是什么?
What's the best data structure and algorithm for my problem?
我正在尝试解决问题:我有一个文本文件,其中的列由“,”分隔。问题是我需要能够按列搜索。文件中的数据示例:
我将按列解析此文件并将所有数据放入另一个数据结构中。所以我的问题是在这种情况下最好使用什么数据结构(以及在这种数据结构中搜索的最佳算法是什么)?我也需要计算所有匹配的条目。例如,如果我选择最后一列并输入“4”进行搜索,它应该显示最后两个字符串并计算 2 个条目。我在考虑类似 list 的东西,但文件很大,搜索时间太长,我需要一个不太依赖数据长度的解决方案。我也在考虑二叉搜索树,但不太确定如何在这里使用它。
这是一种学习任务,所以我不需要一个解决方案(比如 grep),因为我正试图在 Java 上实现所有这些。我想也许这个问题有一些有经验的程序员知道的通用解决方案,或者我可能需要自己思考。我不是要解决方案或代码,只是提示在这种情况下使用什么数据 structure/algorithm 比较好,一些关键字。
老实说是一个数据库。如果那不是一个选项,那实际上取决于您将如何查询它。通常,b 树适用于比较等简单的事情,但您需要像 AVL 或 red/black 树这样的平衡树。并且您需要为要索引的每列 1 棵树。这基本上就是低复杂性数据库的工作方式。
我正在尝试解决问题:我有一个文本文件,其中的列由“,”分隔。问题是我需要能够按列搜索。文件中的数据示例:
我将按列解析此文件并将所有数据放入另一个数据结构中。所以我的问题是在这种情况下最好使用什么数据结构(以及在这种数据结构中搜索的最佳算法是什么)?我也需要计算所有匹配的条目。例如,如果我选择最后一列并输入“4”进行搜索,它应该显示最后两个字符串并计算 2 个条目。我在考虑类似 list 的东西,但文件很大,搜索时间太长,我需要一个不太依赖数据长度的解决方案。我也在考虑二叉搜索树,但不太确定如何在这里使用它。
这是一种学习任务,所以我不需要一个解决方案(比如 grep),因为我正试图在 Java 上实现所有这些。我想也许这个问题有一些有经验的程序员知道的通用解决方案,或者我可能需要自己思考。我不是要解决方案或代码,只是提示在这种情况下使用什么数据 structure/algorithm 比较好,一些关键字。
老实说是一个数据库。如果那不是一个选项,那实际上取决于您将如何查询它。通常,b 树适用于比较等简单的事情,但您需要像 AVL 或 red/black 树这样的平衡树。并且您需要为要索引的每列 1 棵树。这基本上就是低复杂性数据库的工作方式。