通过购物清单访问超市,以最快的方式获取所有物品?

有一段时间,我的妻子送我到一个真正的超市,购物清单(她给我写了一张纸,或给我发短信)。

我想知道是否有快速的方法来填补名单,没有迭代整个超级几十次,直到我相信我已经拥有了一切。

(我发现这个问题在生活中非常有帮助:高效地搭配袜子,希望我可以在我自己的情况下使用社区的帮助)

我不知道/记住每件商品在超市中的位置,而我给出的列表从不分类(例如,蔬菜在列表中全部列出,而不是一个接一个地列出)。 另外,通常我会收到越来越多的物品的短信,而我仍然在超级。

我的方法是规划一条路径,以确保我遍历整个超市,并在走路时从列表中挑选物品。

我在考虑两种方式:

  • 在超级(n)我通过的foreach项目:检查我的列表中是否有这样的项目(m) ,会给我一个O(n*m)共谋,这并不那么高效。
  • 将商店划分为行(p) :站在每一行的开头,我可以读取符号或查看我应该在哪找到哪些商品,而不是迭代我的列表,尝试记住列表中的所有商品那一排。 比走那一排,并将这些物品添加到我的购物车,应该给我O(p*m)同谋。 但是这种情况从来没有真正发生过 :我记不清我的列表中有四个项目中有三个是我期望在该列中找到的,即使我这样做,我也经常忘记一个项目,并且必须再次使用该算法(让说q次) ,这来到: O(q*p*m)
  • 我想补充几点意见:

  • 例如,当我到蔬菜部门时,我发现自己多次浏览该部分,导致我的妻子是一位出色的厨师,并在列表中添加了各种蔬菜(v) 。 当然,我不记得所有的蔬菜,而不是停在市场上每种蔬菜旁边(或者我应该怎么做?),以检查我是否已列入清单。
  • 将我放入购物车的每件商品(或者列出所有我还没有购买的商品)都非常浪费时间,所以我宁愿每次尝试查找我是否仍在查看整个列表有一个项目添加到我的购物车。
  • 另一种情况是在家庭度假之前你乘坐汽车的第二个例子。 你记得你忘记了这个,然后跑回你的房子,得到一些这些东西,忘记其他人然后再回来。 这是类似的情况吗?

  • 在这里查看重新安排的时间,我最初的想法是花时间来映射通常的项目,这是没用的。 (他们经常重新安排过道)。

    对于任何想法沿着这条路走 - 不会去工作......

    链接地址: http://www.djcxy.com/p/12201.html

    上一篇: Visiting a supermarket with a shopping list, get all items in the fastest way?

    下一篇: Walking a directed graph