[Gambas-user] I need a hint on how to deleted duplicate items in a array

Gianluigi bagonergi at ...626...
Fri Jun 30 17:44:04 CEST 2017


2017-06-30 17:21 GMT+02:00 Tobias Boege <taboege at ...626...>:

>
> I wouldn't say there is anything *wrong* with it, but it also has quadratic
> worst-case running time. You use String[].Push() which is just another name
> for String[].Add(). Adding an element to an array (the straightforward way)
> is done by extending the space of that array by one further element and
> storing the value there. But extending the space of an array could
> potentially
> require you to copy the whole array somewhere else (where you have enough
> free memory at the end of the array to enlarge it). Doing worst-case
> analysis,
> we have to assume that this bad case always occurs.
>
> If you fill an array with n values, e.g.
>
>   Dim a As New Integer[]
>   For i = 1 To n
>     a.Add(i)
>   Next
>
> then you loop n times and in the i-th iteration there will be already
> i-many elements in your array. Adding one further element to it will,
> in the worst case, require i copy operations to be performed. 9-year-old
> C.F. Gauss will tell you that the amount of store operations is about n^2.
>
>
Tobias you are always kind and thank you very much.
Is possible for you to explain this more elementarily, for me (a poorly
educated boy :-) )



> And your function does two jobs simultaneously but only returns the result
> of one of the jobs. The output you get is only worth half the time you
> spent.
>
>
I did two functions in one, just to save space, this is a simple example.
:-)

Regards
Gianluigi



More information about the User mailing list