Re: Find Position of many elements in a large list.

*To*: mathgroup at smc.vnet.net*Subject*: [mg127690] Re: Find Position of many elements in a large list.*From*: Tomas Garza <tgarza10 at msn.com>*Date*: Wed, 15 Aug 2012 03:34:06 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*Delivered-to*: l-mathgroup@wolfram.com*Delivered-to*: mathgroup-newout@smc.vnet.net*Delivered-to*: mathgroup-newsend@smc.vnet.net*References*: <20120814082221.E17D66791@smc.vnet.net>

The lists needn't be sorted. Take the following example: In[10]:= X = Range[1000000]; Y = RandomSample[Range[10000000], 10000]; The positions of X where there is a member of Y are found using In[16]:= pos = Flatten[Position[X, #] & /@ Intersection[X, Y]]; // Timing Out[16]= {8.39046, Null} I don't know if 8.4 seconds is fast enough for your needs. This timing depends very much on the length of the intersection. -Tomas > From: benp84 at gmail.com > Subject: Find Position of many elements in a large list. > To: mathgroup at smc.vnet.net > Date: Tue, 14 Aug 2012 04:22:21 -0400 > > I have a sorted, 1-dimensional list X of 1,000,000 integers, and a sorted, 1-dimensional list Y of 10,000 integers. Most, but not all, of the elements of Y are also elements of X. I'd like to know the positions of the elements in X that are also in Y. What's the fastest way to compute this? > > I have an algorithm in mind but it requires lots of custom code and I'm wondering if there's a clever way to do it with built-in functions. Thanks. >

**References**:**Find Position of many elements in a large list.***From:*benp84@gmail.com