Re: Intersection and element counts

• To: mathgroup at smc.vnet.net
• Subject: [mg20673] Re: [mg20615] Intersection and element counts
• From: BobHanlon at aol.com
• Date: Sun, 7 Nov 1999 02:10:08 -0500
• Sender: owner-wri-mathgroup at wolfram.com

```Here is an approach using a variation of run length encoding:

runs[aList_List?VectorQ] := {First[#], Length[#]} & /@ Split[Sort[aList]];

myIntersection[list1_List?VectorQ, list2_List?VectorQ] := Module[
{intr = Intersection[list1, list2]},
Flatten[
Cases[Transpose[{Select[runs[list1], MemberQ[intr, #[[1]]] &],
Select[runs[list2], MemberQ[intr, #[[1]]] &]}], {{x_,
m_Integer}, {x_, n_Integer}} :> Table[x, {Min[m, n]}]]]];

myIntersection[{a, a, a, b, b, c}, {a, a, b, b}]

{a, a, b, b}

Bob Hanlon

In a message dated 11/4/1999 6:37:33 AM, acus at itpa.lt writes:

>I am interesting in intersecion, which takes into
>account the number of the same elements.
>
>It is I would like
>
>myIntersection[{a,a,a,b,b,c},{a,a,b,b}]
>
>to give me {a,a,b,b}.
>
>Any solutions?
>Do theoretical speed of this function is
>very different of usual intersection algorithm speed?
>

```

• Prev by Date: Re: Starting values with FindRoot
• Next by Date: Re: Intersection and element counts
• Previous by thread: Re: Intersection and element counts
• Next by thread: Re: Intersection and element counts