Php 找到比较和排序多级数组的最佳方法的提示
因此,我是一名程序员,对常规的基于决策树的算法非常满意,甚至可以通过跳过额外的计算步骤,甚至稍微调整查询,使我们的应用程序更快,从而实现一些小的增强 我面临着一个在算法上比我以前更复杂的问题。我的想法是,我将拥有这个数据数组,比如说,一千个元素。数据数组的每个元素都是一个自己的数组,另外还有5-10个元素 我将创建另一个值数组,我必须从第一个数组元素节点中找到最佳匹配的十个数组元素节点,并以最佳匹配顺序返回 要可视化的一些示例数据: 假设值数组看起来是这样的:Php 找到比较和排序多级数组的最佳方法的提示,php,arrays,algorithm,sorting,Php,Arrays,Algorithm,Sorting,因此,我是一名程序员,对常规的基于决策树的算法非常满意,甚至可以通过跳过额外的计算步骤,甚至稍微调整查询,使我们的应用程序更快,从而实现一些小的增强 我面临着一个在算法上比我以前更复杂的问题。我的想法是,我将拥有这个数据数组,比如说,一千个元素。数据数组的每个元素都是一个自己的数组,另外还有5-10个元素 我将创建另一个值数组,我必须从第一个数组元素节点中找到最佳匹配的十个数组元素节点,并以最佳匹配顺序返回 要可视化的一些示例数据: 假设值数组看起来是这样的: $arr = array( e
$arr = array(
elm1 = 0.125,
elm2 = 5
elm3 = 200
);
数据数组将类似于:
$array = array(
[0] => array(elm1 => 1.5, elm2 => 8, elm3 => 10),
[1] => array(elm1 => 0.5, elm2 => 4, elm3 => 100),
...etc..
);
现在的想法是,对于每个元素[elm1、elm2、elm3等],我将根据值数组
和每个数据数组节点
中该元素的值的接近程度来给出权重,然后基于此,我需要提取十个最佳匹配的数据数组节点元素
这在理论上看起来不错,但我担心处理时间,因为用户会实时等待。现在我不是一个数学高手,即使我试着去理解big(O)
,n(p)
之类的东西,它还是在我头上飞过
因此,我正在寻找一个更通俗的程序员解决方案,而不是深入研究算法复杂性的工作原理。我在想,如果我在索引为elm1、elm2等的位置创建不同的数组,然后对每个数组进行排序,并运行快速排序,可能会有所帮助。我很想知道这个社区的任何人都会如何处理这样的问题
非常感谢您的指点 免责声明:我不是一个PHP的家伙 一般来说,或者从算法的角度来看,最好的解决方案是将二维数组中的数据保存在已排序的地图集合中。 我能够在PHP中找到SortedMap的实现。在插入所有数据之后,从第二个数组中搜索匹配的元素时,会出现对数或O(logn)
希望这有帮助…我知道这个问题没有特定的代码引发的问题,我知道我得到了-1。不过,我想感谢你花时间回答我的问题,我正在投票表决你的答案,这样你就不会因此而遭受a-1的痛苦。只是为了记录在案:我不是投票失败的人。匿名的选民应该下地狱!我给你一个+来解决这个问题,因为这个问题还不错,考虑到你的答案也投了反对票,我不会认为你是反对票。我猜我们都是被同一个家伙撞跑的:)