I am creating an iphone app in which I need to create a grid view of 25 images. I am doing that by taking 25 images in an array, and displaying them by using for loop by changin
Create an array of 41 numbers (0-40), shuffle them using a partial Fisher-Yates shuffle and use the first 25 elements of the array.
Pseudo-code (random(x) returns a random number from 0 to x inclusive):
array = [0, 1, 2, ..., 40]
for i in 0, 1, ..., 24 do
swap array[i], array[i + random(40 - i)]
truncate array to 25 elements.
You essentially want to randomize the order of the images and then pick the first 25. I don't know exactly how you are arranging your data structures, but here is an example with integers:
for (int x = 39; x > 0; x--)
{
int tmp = element[x];
int newLoc = random()%(x+1);
element[x] = element[newLoc];
element[newLoc] = tmp;
}
I'm assuming that element
contains your values that you want to mix up.
int random = arc4random() % 40;
gives a random number between 0 to 40, from that you choose the image
This is one way to do it and certainly there are better and faster ways, but if you want simplicity, use something like this or peoro's suggestion.