C/Visual C - Dispercion cerrada hash c#

 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido 1 puesto en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder