Algorithm time...
Glen Bojsza
gbojsza at gmail.com
Sun Dec 9 08:06:43 EST 2012
Hi Dick,
I have adjusted your routine so it reports back the values from the
original dataset... note the "x" factor that has been added.
Also, for 50,000 data points I was doing approximately 9 seconds with your
routine it now is in the low milliseconds!!
Now I have to really review and understand how your routine works.
thanks,
Glen
On Sun, Dec 9, 2012 at 5:26 AM, Dick Kriesel <dick.kriesel at mail.com> wrote:
>
> On Dec 9, 2012, at 12:33 AM, Glen Bojsza wrote:
>
> > I believe that this should be doable less than 1 second
>
> Hi, Glen. Here's a draft you could try. It works for the sample data you
> posted.
>
> If you have questions, please ask. If you try it, please report your
> timings.
>
> -- Dick
>
>
>
> <postScript>
> function foo @pLines
>
put 0 into x
> put the number of lines in pLines div 1000 into tGroupSize
> set the itemDelimiter to tab
> repeat for each line tLine in pLines
> add 1 to tLineNumber
> put item 2 of tLine into tValue
> if tIndex[ tValue ] is empty then
> put tLineNumber into tIndex[ tValue ]
> end if
> if tLineNumber is tGroupSize then
> put the keys of tIndex into tValues
> replace cr with comma in tValues
> put min( tValues ) into tMin
> put max( tValues ) into tMax
> if tIndex[ tMin ] < tIndex[ tMax ] then
> put tIndex[ tMin ] + x & tab & tMin & cr after tResult
> put tIndex[ tMax ] + x & tab & tMax & cr after tResult
> else
> put tIndex[ tMax ] + x & tab & tMax & cr after tResult
> put tIndex[ tMin ] + x & tab & tMin & cr after tResult
> end if
> put empty into tIndex
> put 0 into tLineNumber
>
*put* x + tGroupSize into x
> end if
> end repeat
> return tResult
> end foo
> </postScript>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
More information about the use-livecode
mailing list