MathGroup Archive 1999

[Date Index] [Thread Index] [Author Index]

Search the Archive

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