On Fri, Nov 06, 2015 at 11:19:00AM -0500, Tom Lane wrote:
> Nathan Wagner <nw+pg@hydaspes.if.org> writes:
> > I see you committed a modified version of my patch in commit
> > 59464bd6f928ad0da30502cbe9b54baec9ca2c69.
>
> > You changed the tour[0] to be hardcoded to 1, but it should be any
> > of the possible gene numbers from 0 to remainder.
>
> How so? The intent is to replace the first iteration of the
> Fisher-Yates loop, not the old loop. That iteration will certainly
> end by assigning 1 to tour[0], because it must choose j = i = 0.
You are correct. I got confused between reading the original code, my
patch, and your modified patch.
I wonder why the algorithm bothers with the first iteration at all, in
the case of an initialized array, it would just swap the first element
with itself. I must be missing something. I'll need to do some more
reading.
--
nw