comp.lang.ada
 help / color / mirror / Atom feed
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.



  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