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
Algorithm 假设n个女人在音乐会上检查她们的外套_Algorithm_Sorting - Fatal编程技术网

Algorithm 假设n个女人在音乐会上检查她们的外套

Algorithm 假设n个女人在音乐会上检查她们的外套,algorithm,sorting,Algorithm,Sorting,我有一个似乎很难的算法,我必须构造,我甚至不知道从哪里开始。这是: 假设n个女人在音乐会上检查她们的外套。但是到了晚上,, 服务员遗失了索赔支票,不知道哪件外套属于谁。 所有的女人都穿着几乎一模一样的黑色外套,但颜色不同 尺寸。服务员可以让一位女士试穿一件外套,看看这件外套是否合身 意思是它属于那个女人,或者外套太大,或者外套太小。 但是,服务员不能直接比较两件外套的尺寸,也不能比较 两个女人的尺码。描述服务员如何确定哪件外套 属于日志n时间中预期的女性 我已经想到了这样做的方法,但是没有一种方

我有一个似乎很难的算法,我必须构造,我甚至不知道从哪里开始。这是:

假设n个女人在音乐会上检查她们的外套。但是到了晚上,, 服务员遗失了索赔支票,不知道哪件外套属于谁。 所有的女人都穿着几乎一模一样的黑色外套,但颜色不同 尺寸。服务员可以让一位女士试穿一件外套,看看这件外套是否合身 意思是它属于那个女人,或者外套太大,或者外套太小。 但是,服务员不能直接比较两件外套的尺寸,也不能比较 两个女人的尺码。描述服务员如何确定哪件外套 属于日志n时间中预期的女性

我已经想到了这样做的方法,但是没有一种方法可以接近logn时间。
如果您能帮上忙,我们将不胜感激。

我觉得这有点像快速排序

让所有的女人都试穿一件外套,然后把她们分成比那件外套小,比那件外套大的两组。那件外套适合谁

现在,让第一件外套合身的女士试穿其他每件外套,看看它是大还是小。在线性时间中,您现在有两个不同的组,可以递归地执行此过程


这很像快速排序,其中分区步骤是线性时间,并生成两个组以递归方式执行快速排序。使用random pivot时,预期只有Onlogn运行时间。

他可以直接询问他们。这是线性的。如果你没有在衣架上设置互斥锁,你也可以在线性时间内对n名女性进行并行操作。@dan klasson,这不会导致n log ntime@DillonDavis这个想法很聪明。只要让所有的女人随机挑选一件外套,把它们排成一个圈,让她们试穿就行了。如果合适,就随它去吧。如果不合适,就把它传给左边。滥用女性可以是处理器而不是助理的事实。@HarrisonBergman问题是你没有描述你自己实际尝试过的任何东西,也没有问具体的问题,所以听起来你好像希望我们为你做这件事。举例来说,如果你能提供更多细节,说明你想用什么方法来做这件事却没有成功,那么这个问题就会大大改善。