NAME¶
memshuffle - make an array be in random order
SYNOPSIS¶
#include <publib.h>
void * memshuffle(void *block, size_t elsize, size_t elnum);
DESCRIPTION¶
memshuffle will move around the elements of an array in a random fashion.
It uses the standard library function
rand(3) to get the pseudo-random
numbers it needs. The caller must set a suitable seed with
srand(3).
RETURN VALUE¶
memshuffle returns its first argument.
EXAMPLE¶
To shuffle an integer array one might do the following.
int array[4] = { 1, 2, 3, 4 };
memshuffle(array, sizeof(array[0]), 4);
BUGS¶
On many systems
rand(3) is not of very good quality. However, it is the
only random number generator that can be assumed to exist. Making it possible
for the caller to provide an alternate source of random numbers (e.g., via a
function pointer) is perhaps too more trouble than its worth. A better way
would be for everyone to fix their
rand's.
SEE ALSO¶
publib(3),
memrev(3),
rand(3),
srand(3)
AUTHOR¶
Lars Wirzenius (lars.wirzenius@helsinki.fi)