两套物品A组的每个元素与B组的唯一匹配在Onlogn时间内将A组的每个项目与B组的项目进行匹配

问题描述

您尚未说清楚,但是您的问题看起来像是“匹配螺母和螺栓”问题。

这里的想法是选择一个随机螺母a,找到匹配的螺栓b。使用螺母a划分螺栓,使用螺栓b划分螺母,然后像quicksort一样递归。

(当然,我们正在谈论的是nlogn的平均情况,而不是最坏的情况)。

解决方法

因此,要澄清这个问题:

集合A和集合B集合A中的每个元素在集合B中都有一个伙伴,您不能根据将它与同一集合的成员进行比较来对这两个集合进行排序,即,集合B中的每个b元素都与集合B的任何其他b都没有区别(同样对于A)。当爱与碧匹配,你可以告诉我们,如果`Bi

AiBi < AiBi = Ai`。设计一个运行时间为O(nlogn)的算法。

二次时间的明显答案是琐碎且无济于事的-
尽管这是我迄今为止提出的最好的答案。log(n)使我认为应该使用递归或某种二叉树,但是我不确定如果不能比较同一集合中的元素,如何创建二叉树。另外,我不确定如何使用递归调用来产生比仅运行嵌套的for循环更大的效果。任何提示将非常感谢。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...