From: Matthew Heaney <matthewjheaney@earthlink.net>
Subject: Re: Adding functions to generic package
Date: Sun, 29 May 2005 14:37:44 GMT
Date: 2005-05-29T14:37:44+00:00 [thread overview]
Message-ID: <uhdgmyu6f.fsf@earthlink.net> (raw)
In-Reply-To: 42998036$1@news.broadpark.no
Preben Randhol <randhol+valid_for_reply_from_news@pvv.org> writes:
> > Get_Random_Iterator returns an iterator (J) in the range [I, Back):
>
> Not sure I understand this. Wouldn't this mean that the randomisation
> only will be able to put element further back in the list?
No, since J is moved (spliced) from the range [I, Back) to position I
(elements are thus moved from the back to the front).
There are two ranges: [front, I), which stores the randomized elements,
and [I, back), which stores the non-randomized elements.
The list starts out completely non-randomized, so [front, I) is empty
and [I, back) represents the entire list.
During iteration, Get_Random_Iterator is used to randomly select an
element from [I, back), then it gets moved (spliced) at the end of the
randomized range (just before I). This means that every pass through
the loop, the range [front, I) grows and [I, back) shrinks.
The iteration terminates when [I, back) has only a single element.
next prev parent reply other threads:[~2005-05-29 14:37 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-28 15:44 Adding functions to generic package Preben Randhol
2005-05-28 16:27 ` Matthew Heaney
2005-05-28 18:18 ` Preben Randhol
2005-05-28 18:20 ` Preben Randhol
2005-05-29 0:56 ` Matthew Heaney
2005-05-29 8:41 ` Preben Randhol
2005-05-29 14:37 ` Matthew Heaney [this message]
2005-05-29 21:31 ` Preben Randhol
2005-05-29 21:33 ` Preben Randhol
2005-05-29 22:30 ` Matthew Heaney
2005-05-30 20:45 ` Preben Randhol
2005-05-30 22:28 ` Marius Amado Alves
2005-06-01 1:50 ` Matthew Heaney
2005-06-02 12:49 ` Marius Amado Alves
2005-06-02 13:11 ` Matthew Heaney
2005-06-01 1:41 ` Matthew Heaney
2005-05-29 22:27 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox