desordenar vector

chiki
27 de Noviembre del 2008
¿Alguien conoce algun algortimo para desordenar un vector?
Es urgente...

gracias!!!

Alejandro_
27 de Noviembre del 2008
Aquí pongo un ejemplo que puedes compilar y probar:

#include <iostream>
#include <algorithm>
#include <iterator>

using namespace std;

int main()
{
int a[] = {1,2,3,4,5,6,7,8,9,10};
cout << "Ordenado:n";
copy(a,a+10,
ostream_iterator<int,char>(cout," "));

random_shuffle(a, a+10);

cout << "nDesordenado:n";
copy(a,a+10,
ostream_iterator<int,char>(cout," "));

cin.get();

return 0;
}

// Alejandro

Alf
27 de Noviembre del 2008
Sorry, es que a mi tambien me interesa saber como desordenar un vector algo mas grande en C++ (108 enteros). El algoritmo anterior esta bueno, pero siempre me da como resultado el mismo desorden, es posible desordenar un vector con ramdom tal que pueda tener 108! salidas??? (es decir, 108 factorial combinaciones posibles que pueda arrojar como resultado de desordenar)...

Si me pudieran ayudar lo antes posible seria genial, tenemos un algoritmo, pero que esta muy lejos de tener 108! salidas, solo tiene 96... muy poco comparado con un numero que ni siquiera se puede ver en las calculadoras convencionales ni incorporadas en el PC....

jomismo
27 de Noviembre del 2008
kieres decir ke tienes por ejemplo esto

1 2 3 4 5

y kieres desordenarlo

pues haz un random del numero maximo de posiciones del array y ke te vaya insetando los objetos del array dependiendo del numero ke te ha salido en el random