多搜索组合的数据结构设计 < >编码一个C++应用程序来存储和显示一组记录(记录的数量可以是5000的大小)。p>
需要根据记录中的某些属性搜索记录。让我们把这些属性称为分类 共有7个这样的分类,每个分类可能具有不同的唯一值,可以从所有可用记录中填充这些值。通过在该分类中的所有记录中创建一组所有唯一值,这就成为可能 用户可以从这些分类中选择多个值,并根据所有分类中的选择,在记录上进行搜索 现在问题=> 假设用户从分类1中选择一个值,则该值只能有一些匹配的记录。因此,这意味着应该可以只显示与当前选择匹配的其他分类中的有效值。如何根据当前选择从其他分类中筛选出无效值 例如:假设有3条记录,每条记录中有3列,可以在所有三列上搜索多搜索组合的数据结构设计 < >编码一个C++应用程序来存储和显示一组记录(记录的数量可以是5000的大小)。p>,c++,data-structures,C++,Data Structures,需要根据记录中的某些属性搜索记录。让我们把这些属性称为分类 共有7个这样的分类,每个分类可能具有不同的唯一值,可以从所有可用记录中填充这些值。通过在该分类中的所有记录中创建一组所有唯一值,这就成为可能 用户可以从这些分类中选择多个值,并根据所有分类中的选择,在记录上进行搜索 现在问题=> 假设用户从分类1中选择一个值,则该值只能有一些匹配的记录。因此,这意味着应该可以只显示与当前选择匹配的其他分类中的有效值。如何根据当前选择从其他分类中筛选出无效值 例如:假设有3条记录,每条记录中有3列,可以在
Record1=> T1, E1, S1
Record2=> T2, E2, S2
Record3=> T3, E1, S2
因此,每个分类的可能值为
Classification1=> T1, T2, T3
Classification2=> E1, E2, E3
Classification3=> S1, S2, S3
现在假设用户从classification1中选择T1/T2,从classification2中选择E1进行搜索。这意味着对于分类3来说,只显示S1就足够了
有效处理这种情况的正确数据结构是什么。单链表和函数“filter”,它接受一个列表和一个谓词,将给出O(n)的结果。它将逐项遍历列表,根据每个项检查谓词。没有任何分类。试试看,应该很快 那么你需要快点吗?可能有一些索引,如关系数据库中的索引。但是仔细想想,你真的需要这么快吗?索引需要内存和时间来构建。在内部,它通常是一棵红黑树,即使它只是存储散列。您可以先扫描一个索引,这将使您的搜索集更窄,然后对剩下的内容应用筛选功能
但如果这不是一项研究任务,我会坚持只使用过滤器,或者在极端情况下,使用一些内存中的关系数据库 希望它比O(n)快,因为过滤器对话框需要为每个用户选择刷新,而不希望搜索每个用户选择的所有记录。关于过滤器组合的索引。有7种不同的分类,每个分类可以有不同数量的可能值。内存不是问题,但速度是。谢谢。@siva-elango-r,别忘了黛博斯。与中类似(如果通过键盘输入过滤器值)