如何找到最接近测试行的矩阵中的行?

时间:2017-12-06 11:35:57

标签: c++ algorithm sorting data-structures find

我目前正在努力想出一种智能的方法来存储我的数据,以便我可以轻松搜索,排序和插入。

我的数据由std::pair<vector<int>,string>组成,存储在std::vector中,形成一种二维矩阵。

这样的事情:

enter image description here

每个向量都有一个与string匹配的数字序列。

我的问题在于应该进行测试。

测试包括使用测试向量进行测试,测试向量的长度可能与存储在矩阵中的长度相同或者更小。如何找出测试向量最匹配的字符串?

我如何有效地搜索?

关于如何解决问题的一些想法,以及它们的一些问题:

  • 一个想法是根据测试向量的长度制作子总和,然后查看哪些子总和最匹配测试向量的总和。

问题:我期待相同的模式,因此给定另一种模式可能会出现相同的总和。

  • 另一个想法是制作矩阵的副本,按列排序,并搜索每个索引,并跟踪哪个字符串匹配最佳...

问题:这虽然需要对所有列进行排序 - 矩阵比上面显示的大,它有大约1000列,并且考虑到我花费的时间,一次搜索似乎太昂贵了在它上面 - 也需要实现插入的可能性,因此可以理解有效的东西。

0 个答案:

没有答案