shuffling lines in a stream
Sean Kelly
sean at invisibleduck.org
Fri Oct 10 10:02:54 PDT 2008
It would be slower than the seeking option, but something like a
randomized mergesort would work as well. If the program can buffer k
lines in a file containing n lines, then read the first k lines into
memory, shuffle them, and write them out to a temporary file. Repeat
until the input is exhausted. Now randomly pick two of the temporary
files and randomly merge them. Repeat until two temporary files remain,
then output the result of the final random merge to the screen.
For small files (ie. where n<k) the file would be read, shuffled in
memory, and printed to the screen, assuming the proper checks were in place.
Sean
More information about the Digitalmars-d
mailing list