Ir al contenido principal

Algoritmos de busqueda en texto (continuación...

Continuando con la discusión acerca de los algoritmos de busqueda de texto dentro de texto;
De mi ultima charla con el profesor Edgar Casasola, salto a la vista que estos algoritmos resultan ser mas eficientes que el simple indexOf de Java, cuando la cadena de entrada (la cadena de búsqueda), es mayor a 7000 caracteres. Cambie ligeramente el algoritmo para incrementar paulatinamente el tamaño de la cadena, a continuación los resultados:

Con una cadena de 419 caracteres:
text size = 419
Contains algo: 0
StringSearch algo: 15


El algoritmo de Java funciona mejor.

text size = 756
Contains algo: 16
StringSearch algo: 15

Con 756, el Boyer, Moore se empieza a meter en la pelea. (Similar resultado para 3947 caracteres)

A partir de los 7909, la ventaja en perfomance del B.M es palpable:

text size = 7909
Contains algo: 125
StringSearch algo: 94

text size = 19678
Contains algo: 313
StringSearch algo: 187
razón: 59%

text size = 39532
Contains algo: 594
StringSearch algo: 391
razón: 62%

text size = 78630
Contains algo: 1218
StringSearch algo: 766
razón: 62%

text size = 157744
Contains algo: 2438
StringSearch algo: 1515
razón: 62%

text size = 315454
Contains algo: 5015
StringSearch algo: 3282
razón: 65%


A la luz de los resultados, podemos resumir: Para analizar cadenas pequeñas (menos de 7000 caracteres), el indexOf al no tener pre-procesamiento de la cadena entrante, resulta mas eficiente. En cadenas mayores a 7000 caracteres, el incremento promedio en el perfomance de la búsqueda, es de un 60%.

Lo anterior nos da un criterio para utilizar una u otra solución, como usted querido lector ya se habrá dado cuenta; en el caso de tener un promedio de cadenas de entradas menores a 7000 o 5000 caracteres, el algoritmo de Java (java.lang.String.contains), funciona bastante bien. Para colecciones de mayor peso, los algoritmos de RI superan considerablemente a los algoritmos simples de Java.

Trea bien!

Comentarios

Entradas más populares de este blog

Pasos para remover Postgresql 8.3 en MAC OS

Tomado de: http://forums.enterprisedb.com/posts/list/1437.page In Mac OSX: (Assuming Default Locations) Via uninstaller: 1) In the installation directory, there will be a uninstall-postgresql.app file will be there, executing (double clicking) that will uninstall the postgresql installation. Manual Uninstallation: 1) Stop the server sudo /sbin/SystemStarter stop postgresql-8.3 2) Remove menu shortcuts: sudo rm -rf /Applications/PostgreSQL 8.3 3) Remove the ini file sudo rm -rf /etc/postgres-reg.ini 4) Removing Startup Items sudo rm -rf /Library/StartupItems/postgresql-8.3 5) Remove the data and installed files sudo rm -rf /Library/PostgreSQL/8.3 6) Delete the user postgres sudo dscl . delete /users/postgres

Enrique Bunbury - 3 de Octubre 2009 - Heredia CR

Via periodico la nacion, me entero de este conciertazo: http://www.nacion.com/viva/2009/julio/29/viva2042768.html Ah esperar mas detalles y la venta de la entradas, "Para solo si me perdonas ..." EDIT ..... Via http://www.enriquebunbury.com/hellville.aspx (gracias a andres por su post) venta anticipada: Entradas a la venta a partir del 13 de agosto en: www.costaricaticket.com Por ahi estare anunciando, el 13 si las estan vendiendo!

Configura tu MMS - ICE CELULAR

Hola gente, Me encontre esta para configurar en tu aparato el servicio del ICE, para enviar mensajes con Imagen: http://www.grupoice.com/esp/serv/per/cel/catal_sm/men_multi/guia.htm En mi caso yo tengo un K550i, aunque no vi mi modelo dentro de la lista que dan en el PDF, me guié con el modelo mas similar y funko. Como dato curioso si envía un mensaje a un celular sin soporte o conflagración MMS, el ICE manda un link y credenciales para ver el mensaje en: http://mms.grupoice.com/m/C?url=mmc1 upd (edit): Para que funcione los MMS debe tener instalado Internet en su Celular; el costo por tarifa fija, es de 3500 colones por mes. update (dic 29 2010) Me encontré estos otros links con mas info: http://portal.grupoice.com/wps/wcm/connect/web+content/Esp/CatTelecom/movil/Adicionales/Kolbiemail/como/ http://www.taringa.net/posts/celulares/7987334/Kolbi-Prepago-todas-la-configuraciones.html También puedes ver mas, en el thread del facebook de Kolbi http://www.facebook.com/photo.php?fbid=1720708...