Metodo Lineal Probing
Necesito por favor que alguien me de la estructura
si es posible en Java del metodo Linear Probing
para busquedas.
gracias...!
si es posible en Java del metodo Linear Probing
para busquedas.
gracias...!
Para busquedas? No será para ordenamiento?
Si es para ordenamiento... esto te puede servir... no está en Java... pero se entiende:
sort( r, lo, up )
ArrayToSort r;
int lo, up;
{ArrayToSort r1;
int i, j, uppr;
uppr = up + (UppBoundr-up)*3/4;
for (j=lo; j<=up; j++) r1[j] = r[j];
for (j=lo; j<=UppBoundr; j++) r[j].k = NoKey;
for (j=lo; j<=up; j++) {
for ( i=phi(r1[j].k,lo,uppr); r[i].k != NoKey; i++) {
if ( r1[j].k < r[i].k ) {
r1[j-1] = r[i];
r[i] = r1[j];
r1[j] = r1[j-1];
};
if ( i > UppBoundr ) Error;
}
r[i] = r1[j];
};
for (j=i=lo; j<=UppBoundr; j++)
if ( r[j].k != NoKey )
r[i++] = r[j];
while ( i <= UppBoundr )
r[i++].k = NoKey;
};
Si es para ordenamiento... esto te puede servir... no está en Java... pero se entiende:
sort( r, lo, up )
ArrayToSort r;
int lo, up;
{ArrayToSort r1;
int i, j, uppr;
uppr = up + (UppBoundr-up)*3/4;
for (j=lo; j<=up; j++) r1[j] = r[j];
for (j=lo; j<=UppBoundr; j++) r[j].k = NoKey;
for (j=lo; j<=up; j++) {
for ( i=phi(r1[j].k,lo,uppr); r[i].k != NoKey; i++) {
if ( r1[j].k < r[i].k ) {
r1[j-1] = r[i];
r[i] = r1[j];
r1[j] = r1[j-1];
};
if ( i > UppBoundr ) Error;
}
r[i] = r1[j];
};
for (j=i=lo; j<=UppBoundr; j++)
if ( r[j].k != NoKey )
r[i++] = r[j];
while ( i <= UppBoundr )
r[i++].k = NoKey;
};
perdon... acá encontré la de busquedas... está en Pascal, pero la conversion es trivial:
<code>
int search( key, r )
typekey key; dataarray r;
{ int i, last;
i = hashfunction( key ) ;
last = (i+n-1) % m;
while ( i!=last && !empty(r[i]) && r[i].k!=key )
i = (i+1) % m;
if (r[i].k==key) return( i );
else return( -1 );
}
</code>
<code>
int search( key, r )
typekey key; dataarray r;
{ int i, last;
i = hashfunction( key ) ;
last = (i+n-1) % m;
while ( i!=last && !empty(r[i]) && r[i].k!=key )
i = (i+1) % m;
if (r[i].k==key) return( i );
else return( -1 );
}
</code>