
|
Búsqueda aleatoria, desordenar lista.Este método es completamente probabilístico y es funcional cuando el método binario u otro método más eficaz no visto sea aplicable. Es factible si el acceso a los datos es extremadamente lento, es decir si la búsqueda secuencial podría tardar horas para encontrar el último entre unos cuantos y queremos probar suerte (ya que las probabilidades de la búsqueda secuencial son las mismas), también sirve para desordenar una lista, por ejemplo para repartir “cartas mezcladas de un juego virtual”. Ejemplo: En una situación donde la consulta en línea de archivos clasificados depende de personal humano para deducir la respuesta y la respuesta humana puede tardar minutos en encontrar por ejemplo un sello en una carpeta, la búsqueda se minimizaría de manera aleatoria si tenemos suerte, otro ejemplo sería buscar dentro de los archivos de una lista de archivos alojados en un servidor remoto completamente saturado y con escasas posibilidades de transferencia a alta velocidad, también minimizaríamos el tiempo de búsqueda de manera que en el peor de los casos nuestra respuesta estaría entre el 50% y el 100% de los últimos registros y en el mejor de los casos entre el 0% y el 50% de los primeros registros, de todas maneras es la misma probabilidad que la búsqueda secuencial así que solo el azar es el que influye. Búsqueda desordenada de la lista:
Fabricamos un índice para acceder a la lista, con la cantidad de elementos actual y no la máxima que es su capacidad, ya que será de manera temporal y local a la función, todos los objetos y variables declarados dentro de una función a menos que sean declarados estáticos se perderán y se liberará memoria del sistema. Rellenamos el índice con los elementos desde el 0 al máximo menos uno. Extraemos al azar un elemento del índice y recorremos los demás hasta el que quitamos, así comparamos un elemento de la lista al azar y terminamos si lo encontramos. Nota: El tipo de búsqueda no es exacto ya que usamos indexOf en vez de equals. Queda para el lector agregar esta función en el ejemplo anterior y probarla. Desordenar la lista:
Para desordenar la lista estamos usando una lista temporal, con su respectivo contador e índice variable de elementos. Nota: Queda como tarea para el lector optimizar esta función para que no sea necesaria la lista temporal que en caso de escasos recursos y enormes listas no sería algo permitido, utilizando sólo 1 objeto temporal del tipo String para intercambiar valores y eliminar el uso del índice temporal. leavecomment |
|
|||||||||||||||||||||||
*Hasta que esta leyenda no desaparezca el libro no ha sido terminado, descarge en pdf:
http://compunauta.com/forums/linux/programacion/java/ebook.html