Autor
|
Tema: Busqueda binaria. (Leído 9,283 veces)
|
NetJava
Desconectado
Mensajes: 195
|
Buenas,
Estaba mejorando mis conocimientos, y de pronto he pensando en algoritmos de búsqueda. Es fácil encontrar ejemplos de ese tipo de búsqueda, pero si no los he entendido mal, es solo con números, se ordenan y demás... pero y si se busca por String, el algoritmo sirve¿? O tendría que clasificar por número de caracteres para hacer las particiones en la BD¿? jajaja se me acaba de ocurrir.
Saludos y gracias!
|
|
|
En línea
|
|
|
|
Valkyr
Desconectado
Mensajes: 646
Divide y vencerás
|
No se si te he entendido correctamente, pero si lo que quieres decir es: "¿Funciona correctamente la búsqueda binaria en un array de Strings?" Si esa es la cuestión te digo que si, y creo que no me equivoco, tan solo que a la hora de comparar los Strings tendrías que hacerlo con el método compareTo(String), el cual devuelve 0 si son iguales, menor que cero si es lexicográficamente menor y un número positivo si es mayor, por tanto en un array ordenado con Strings podrías realizar una búsqueda binaria perfectamente. Espero que fuese eso si no...pues especifica un poco más y si puedo pues ayudo xD. Saludos. http://download.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#compareTo(java.lang.String) por si quieres echarle un ojo
|
|
|
En línea
|
|
|
|
NetJava
Desconectado
Mensajes: 195
|
Buenas,
Para explicarme mejor cuento mi caso. Tengo una base de datos en la que estoy metiendo palabras, haciendo un diccionario. Lo que hago es que una aplicación lea un archivo que contiene un libro, hace los filtros necesarios para limpiar caracteres que no quiero, y después coge las palabras y las mete en la BD comprobando primero si ya existen o no.
Bueno pues después de meter unos 10 libros, querría ordenar alfabéticamente las palabras para luego poder hacer búsquedas. Tu respuesta es lo que buscaba, no sabía que el método compareTo(String) podría resolver el problema. Muchas gracias.
Ahora me planteo que cuando yo ejecuto una query SELECT que tipo de búsqueda se realiza en una BD MySQL...¿? Para poder realizar una búsqueda binaria tendría que cargar en un array toda la tabla... Creo que no me he planteado esto muy bien. Pero muchas gracias por que me has resuelto la duda.
Saludos!!
|
|
|
En línea
|
|
|
|
Tryptophan
Desconectado
Mensajes: 52
|
Podes insertar ordenado sobre la Tabla. Me refiero a crear un cursor y fijarte donde meter la palabra para insertar ordenado, y después tirar la búsqueda binaria sobre la BD MySQL. Probablemente tengas una degradación en la performance de tu sistema al "pegarle" mucho a tu BD, pero por ahora no se me ocurre otra solución . Saludos
|
|
|
En línea
|
|
|
|
NetJava
Desconectado
Mensajes: 195
|
Buenas,
muchas gracias, estoy intentando perder el menor tiempo posible con los thread, el tema de la base de datos como esta ahora para ordenarla va a dar muchos problemas de tiempos, una vez que tenga el algoritmo para ordenar la base alfabéticamente. De todas formas a lo mejor (con el comentario anterior) se puede solucionar, transpasando los datos de una tabla a otra, pero ordenandolos por medio del método compareTo(String) y después insertando ordenadamente. A lo mejor eso si puede funcionar... aun que el tiempo será problemático.
Muchas gracias, saludos!!!
|
|
|
En línea
|
|
|
|
xopito
Desconectado
Mensajes: 36
|
Quizá con otro método de comparación puedas solucionarlo, aunque digamos que viene a ser como compareTo:
Siendo b_pin una String, y datos una array de bytes, si fuese una String datos también, en vez de poner datos, tendrías que poner datos.charAt, que lo que hace es coger el carácter que hay en una posición determinada,
for(int i=0;i<(b_pin.length());i++){ if(b_pin.charAt(i)!= (char) datos){ return false; }
|
|
|
En línea
|
|
|
|
NetJava
Desconectado
Mensajes: 195
|
Buenas xopito,
estoy pensando si se podría hacer de esa manera, y cual sería mejor. Muchas gracias y saludos!!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Busqueda Binaria Aplicada a las Blind SQL Injection
Nivel Web
|
OzX
|
0
|
3,708
|
10 Julio 2009, 05:06 am
por OzX
|
|
|
busqueda binaria
Programación C/C++
|
Sunshine66
|
3
|
4,655
|
6 Mayo 2010, 07:42 am
por Akai
|
|
|
Busqueda binaria con palabras
Programación C/C++
|
soez
|
0
|
3,139
|
3 Agosto 2010, 04:10 am
por soez
|
|
|
Busqueda binaria de un array desordenado
« 1 2 3 »
Programación C/C++
|
David_RM
|
21
|
17,223
|
13 Noviembre 2011, 16:55 pm
por CobraCY
|
|
|
[C] Búsqueda binaria recursiva
Programación C/C++
|
BatchianoISpyxolo
|
3
|
19,427
|
29 Octubre 2012, 23:08 pm
por flony
|
|