Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何确定两个数组中的元素序列有多相似_Arrays_Algorithm_Sequence - Fatal编程技术网

Arrays 如何确定两个数组中的元素序列有多相似

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元素是否已排序,或者计算排序所需

我有两个数组。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元素是否已排序,或者计算排序所需的交换数。这也是使用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谢谢,我不确定要用谷歌搜索什么,但编辑距离看起来像我要找的。