【发布时间】:2011-03-15 19:46:48
【问题描述】:
我正在尝试为以下排序问题找到最佳算法。
一个过道的礼堂有 N = K × M 个座位,K 排,每个过道有 M 个座位。假设 K 比 M 大,但我认为这不是很重要。有 N 个人在 与席位(指定席位)的双射。假设人们不 喜欢等待,最快的方法是什么让他们排队得到他们 尽快坐在他们的座位上?
我进行了一些简单的实验(使用随机排列)并且它 似乎让他们随机排队比让他们更快 前排第三位(过道下方)的人先排队,然后 中间三分之一,然后是后三分之一。这对我来说似乎是错误的。
如果这很重要,我会在 MatLab 中写这个。有什么想法或答案吗?
【问题讨论】:
-
我认为在不了解模型的情况下很难回答这个问题。有多少个入口,它们在哪里?是什么导致人们不得不等待以及等待多长时间?如果您必须经过同排已经坐着的人,是否需要更长的时间坐在您的座位上?人们总是直接去他们正确的座位,还是有时来回徘徊寻找正确的座位?等等……
-
只有一个入口,向下移动一排或一个座位需要一个单位时间。
-
也许我看错了,但是如果你有一群高效的人,他们在去座位的路上从不停止移动(包括毫不拖延地转身走下小岛),他们去哪个顺序都没有关系。或者,你不能让每排的一个人排队(第一排 = 前排,最后一排 = 最后一个位置),他们都沿着小岛走下去,然后全部转身并一次沿着各自的行走(冲洗和重复)。
-
好吧,如果你让靠近入口的座位的人先进入,那肯定会更糟。
标签: algorithm sorting matlab permutation