Java中浮点数组的数据对齐算法
在折线图中有两个代表y值的浮点数组。现在我想把这两个图表对齐。两个阵列的对齐是否存在任何现有算法
一个非常简单的例子
a:
2.5 1.3 1.6 4.2 3.6
b:
3.3 1.4 2.5 1.3 1.6
现在,校准后应为:
2.5 1.3 1.6 4.2 3.6
3.3 1.4 2.5 1.3 1.6
事实上,每个阵列的大小约为30000,浮动范围为-6.94709206,因此更为复杂
你可以在下面搜索框中键入要查询的问题!
在折线图中有两个代表y值的浮点数组。现在我想把这两个图表对齐。两个阵列的对齐是否存在任何现有算法
一个非常简单的例子
a:
2.5 1.3 1.6 4.2 3.6
b:
3.3 1.4 2.5 1.3 1.6
现在,校准后应为:
2.5 1.3 1.6 4.2 3.6
3.3 1.4 2.5 1.3 1.6
事实上,每个阵列的大小约为30000,浮动范围为-6.94709206,因此更为复杂
# 1 楼答案
假设两个数组在某一部分匹配
a
中b
的第一个元素的位置a
内查找b
的第一个元素的位置a
放在b
后面,如果first a
>last b
{# 2 楼答案
原则上,这很简单:
对于浮动,您会遇到一个问题,即如果您的数据中存在任何不精确的可能性,那么它们可能并不一定要完全相等才能被视为匹配项。您可能想说abs(a[an]-b[bn]),而不是a[an]==b[bn]<;等等
免责声明:代码是我的头顶和未经测试。没有明示或暗示的保证。您的里程可能会有所不同。禁止的地方无效。如果出现皮疹,请咨询医生
# 3 楼答案
这基本上是正常的模式匹配,您应该能够使用最简单的算法适合字符匹配
简单搜索的最坏情况通常是n*m(假设n和m是浮点序列的长度),如果其中一个序列保持不变,也许可以使用类似于Boyer-Moore的算法将运行时间缩短为线性