Dispercion cerrada hash c#
Publicado por julio leonel (6 intervenciones) el 15/06/2020 00:22:25
tengo el siguiente problema, realice un programa donde tengo que rellenar un vector con numeros aleatorios evitando que los elementos se repitan para luego ordenarlos por un metodo de ordenamiento. hasta ahi todo bien el programa me salio, lo que necesito es si alguien me puede orientar como aplicar una funcion hash de dispersion cerrada para reducir la complejidad de la siguiente funcion de n^2 a n. la funcion es la que rellena el vector con un random y luego evita que se repitan. Muchas gracias!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void crearVector (int v[])
{
int i,j,num;
srand(time(0)); // Para que no se repita el juego de numeros aleatorios
for(i=0; i<TAMANIO; i++)
{
int num = 1 + rand()%50; // random para generar numeros aleatorios entre 1 y 50
if(i>0)
{
for(j=0; j < i; j++) // Verifica si no se ha generado antes
if(num==v[j])
{
num = 1 + rand()%50;
j=-1;
}
}
v [ i ] = num;
}
}
Valora esta pregunta


0