让我们假设我有两个或多个数组/列表包含相同的元素,但顺序不同。量化数组之间的差异order
MyClass[] array1 = new MyClass[] {obj1, obj2, obj3, obj4};
MyClass[] array2 = new MyClass[] {obj1, obj4, obj2, obj3};
我需要比较的算法和计算元素的顺序差异在阵列中,是这样的:
double likeness = ArraysOrderComparator.compare(array1, array2);
我认为有不同的方法来做到这一点。 基本上,我想定义一个度量来比较不同数组的顺序。 我敢打赌一些算法已经存在,有人可以给我一个提示吗? 我需要在java代码中实现它。
定义'订单差异'。例如,你会期望“相似”等于什么? –
比较订单肯定有多种方式,但正确的解决方案可能需要更好地了解比较的用途。一个基本的想法可能是简化这样的事实,即你的数组实际上只是字符串,你可以使用任何字符串差分算法(如汉明距离)。我假设你的情况('1234','1423')会比说('1234','1243') – RudolphEst
更不相似。其实我需要探索不同的方式来计算'相似性',所以我想有关键字谷歌有关它的一些理论! 为了我的目的,我应该更重视相对顺序差异而不是绝对顺序('1234'应该更接近'1423'而不是'1432') – blian