0% encontró este documento útil (0 votos)
87 vistas2 páginas

Diccionario y Búsqueda en Java

El documento describe una clase Diccionario que permite buscar palabras en un diccionario almacenado en un archivo de texto. La clase Diccionario lee las palabras del archivo especificado en el constructor y las almacena ordenadas en un arreglo. El método busca() implementa una búsqueda binaria recursiva para encontrar una palabra dada en el arreglo en tiempo logarítmico.

Cargado por

Raul Piña
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
87 vistas2 páginas

Diccionario y Búsqueda en Java

El documento describe una clase Diccionario que permite buscar palabras en un diccionario almacenado en un archivo de texto. La clase Diccionario lee las palabras del archivo especificado en el constructor y las almacena ordenadas en un arreglo. El método busca() implementa una búsqueda binaria recursiva para encontrar una palabra dada en el arreglo en tiempo logarítmico.

Cargado por

Raul Piña
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

import [Link].

*;
import [Link];

/**
* Ejemplo de uso de Logger.
* Busca una palabra en un diccionario.
*
* @author Laboratorio de Programación
* @version 29.1.2006
*/
class Diccionario {
private static final Logger LOGGER = [Link]("Diccionario");
private static final int MAX = 100;
// diccionario de hasta MAX palabras
// ordenadas alfabéticamente
private String[] palabras = new String[MAX];
private static final int primera = 0;
private int ultima = -1;
/**
* Construye el diccionario leyendo palabras de un fichero.
*
* @param fichero A razón de una palabra por línea.
*/
Diccionario(String fichero) {
[Link]("creamos el diccionario con " + fichero);
try {
BufferedReader br = new BufferedReader(new FileReader(fichero));
for (String linea = [Link](); linea != null; linea = [Link]
e()) {
if (ultima >= MAX - 1) {
continue;
} // no caben más palabras
palabras[++ultima] = linea;
}
[Link](ultima + 1 + " palabras");
} catch (Exception e) {
[Link]([Link], "creacion: ", e);
[Link](1);
}
}
private int busca(String p) {
[Link]("comienza la busqueda de " + p);
int resultado = busca(p, primera, ultima);
[Link]("resultado de la busqueda: " + resultado);
return resultado;
}
private int busca(String p, int a, int z) {
[Link]("busca entre " + palabras[a] + " y " + palabras[z]);
if (a <= z) {
int m = (a + z) / 2;
[Link]("probamos con " + palabras[m]);
int donde = [Link](palabras[m]);
[Link]("donde= " + donde);
if (donde == 0) {
return m;
}
if (donde < 0) {
return busca(p, a, m - 1);
}
if (donde > 0) {
return busca(p, m + 1, z);
}
}
[Link]("no encontrado");
return -1;
}
/**
* Programa principal.
*
* @param args diccionario palabra
*/
public static void main(String[] args)
throws Exception {
if ([Link] != 2) {
[Link]("uso: java Diccionario diccionario palabra");
[Link](1);
}
Diccionario diccionario = new Diccionario(args[0]);
String palabra = args[1];
int posicion = [Link](palabra);
[Link](palabra + ": " + posicion);
}
}

También podría gustarte