Speed

Alex Tweedly alex at tweedly.net
Fri Aug 22 19:31:46 EDT 2014


On 22/08/2014 21:17, Beat Cornaz wrote:
> At the moment I use :
>
> --
> function BC2_RemoveDuplicate_Lines pData
>    
>     repeat for each line rLine in pData
>        add 1 to TestArray[rLine]
>     end repeat
>     
>     return the keys of TestArray
> end BC2_RemoveDuplicate_Lines
> --	
>
>
> I hope someone knows a faster way :-)
>
>
I'll read the rest of the email carefully and (hopefully) have more 
comments later.
But for now, I'll try this one part.

I don't know a way to do this much faster. You'd get a small (perhaps 
very small) improvement by replacing the central line by

       put 1 into TestArray[rLine]


but (without testing it), I suspect it will be a small change.

However, if you can change your input lines slightly, you can do 
something that should be better.  If these are permutations that you are 
generating, then as you generate each one, you might be able to add an 
extra character onto each line (let's say, a colon ":"). Then your data 
would look like
123:
125:
152:
231:
etc.

With this input, you could do
    split pData by CR and ":"
    combine pData by CR and ":"
and all your duplicates have disappeared.

It might be even faster to do
   split pData by CR and ":"
   put the keys of pData into pData
and that would remove those extra ":"s for you at the same time.

-- Alex.







More information about the use-livecode mailing list