Arrays 如何确定两个数组中的元素序列有多相似
我有两个数组。A包含元素的有序列表,例如Arrays 如何确定两个数组中的元素序列有多相似,arrays,algorithm,sequence,Arrays,Algorithm,Sequence,我有两个数组。A包含元素的有序列表,例如[e1、e2、e2、e3、e4、e5、e5]。B是a的子集,具有重复,例如[e1、e1、e2、e5、e4]。在实践中,阵列将大于此值(长度可能小于10000个元素),并且性能很重要 如何定量地确定两个数组中元素的顺序有多相似?(理想情况下,不必强行进行比较)首先,您需要验证B的每个元素都属于a。由于a是一个排序数组,这是一个log(n)操作(使用二进制搜索),最多需要重复n次,这会导致nxlog(n)操作 其次,您需要验证B元素是否已排序,或者计算排序所需
[e1、e2、e2、e3、e4、e5、e5]
。B是a的子集,具有重复,例如[e1、e1、e2、e5、e4]
。在实践中,阵列将大于此值(长度可能小于10000个元素),并且性能很重要
如何定量地确定两个数组中元素的顺序有多相似?(理想情况下,不必强行进行比较)首先,您需要验证B的每个元素都属于a。由于a是一个排序数组,这是一个
log(n)
操作(使用二进制搜索),最多需要重复n
次,这会导致nxlog(n)
操作
其次,您需要验证B元素是否已排序,或者计算排序所需的交换数。这也是使用e.q.快速排序或任何其他有效算法的
nxlog(n)
操作 首先,您需要验证B的每个元素是否属于A。由于A是一个排序数组,因此这是一个log(n)
操作(使用二进制搜索),最多需要重复n
次,这将导致nxlog(n)
操作
其次,您需要验证B元素是否已排序,或者计算排序所需的交换数。这也是使用e.q.快速排序或任何其他有效算法的
nxlog(n)
操作 如果你想看看两个不同的数据序列有多相似,考虑到同一数据可能有很多重复的副本,你可能想看看,一个测量这个数量的算法。它在语音识别、时间序列数据分析和字符串相似性方面都有应用。如果你想看看两个不同的数据序列有多相似,考虑到同一数据可能有很多重复的副本,你可能想看看,一种测量这个数量的算法。它在语音识别、时间序列数据分析和字符串相似性方面都有应用。因此,您需要将它们分别设置为一个集合(一个唯一元素的集合),然后如果两个集合相同-它们相等-并消除重复,如参见一系列流行的字符串度量,但它们可以直接应用于arrays@dmitryro我试图在问题中澄清这一点,但我已对其进行了编辑,使其更加具体。我需要比较顺序。@Jones是否可以提供一个示例输入以及所需的输出结果如何?@user3080953谢谢,我不确定要用谷歌搜索什么,但编辑距离看起来就像我要搜索的。因此,你需要将每个输入设为一个集合(一个唯一元素的集合),然后,如果两个集合相同-它们相等-并删除重复,如See中的一系列流行的字符串度量,但它们可以直接应用于arrays@dmitryro我试图在问题中澄清这一点,但我已对其进行了编辑,使其更加具体。我需要比较一下顺序。@Jones是否可以提供一个示例输入,以及所需的输出是什么样子?@user3080953谢谢,我不确定要用谷歌搜索什么,但编辑距离看起来像我要找的。